Ta porada dotyczy tylko serwerów Apache i plików konfiguracyjnych .htaccess, które pozwalają dodawać własne dyrektywy do bazowych ustawień. Aby pozbyć się niechcianego /public/index.php wystarczy w katalogu głównym projektu umieścić plik .htaccess a w nim dopisać kilka reguł z modułu MOD_REWRITE:
1 2 3 4 5 6 7 8 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^(www.)?domain.loc$ RewriteCond %{REQUEST_URI} !^/public/index.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /public/$1 RewriteCond %{HTTP_HOST} ^(www.)?domain.loc$ RewriteRule ^(/)?$ public/index.php [L] |
Po tym zabiegu możesz uruchomić stronę w przeglądarce internetowej wpisując samą domenę: http://domain.loc
Oczywiście to zadziała jeśli moduł MOD_REWRITE jest włączony. Możesz to sprawdzić za pomocą skryptu PHP:
1 |
<?php phpinfo(INFO_MODULES); ?> |
Innym sposobem na pozbycie się public/index.php jest skonfigurowanie VirtualHosta.