Magento2 – Difference Between Root Index.php and Pub Directory Index.php

domainmagento2

Can any one tell me the logical difference between of using index.php in root directory and pub directory when we go live to point domain then which index.php should be pointed by domain?

Best Answer

  1. Magento 2 ships with two index.php files.

/path/to/magento2/index.php

/path/to/magento2/pub/index.php

  • One is at the absolute top level of Magento 2’s distribution folder. The second is inside the "pub" folder. There are also separate but similar .htaccess files for each of these index.php files.

  • The file you want to use for your Magento system’s root folder is pub. This is a modern PHP framework convention, and is one layer in a layered approach to protecting your PHP and configuration files from being exposed to the world. However, Magento still ships with the root level index.php because many hosting companies make changing this webroot difficult and/or impossible.

Hint : https://alanstorm.com/magento-2-frontend-files-serving/

  1. Because in that case most of Magento's code will live outside the public document root, so the possible attack surface is smaller. In other words, when you use the top-level folder as a document root, you have to make sure that various folders (such as the app) are explicitly denied in your webserver configuration.

Hint : Why Magento 2 have 2 possible root folder?

Related Topic