Я использую htaccess, чтобы переписать свои URL-адреса, чтобы у меня были хорошие чистые URL-адреса. Однако один и тот же файл htaccess делает разные вещи на моем локальном и удаленном серверах:
На моем локальном сервере URL-адрес веб-сайта похож на http://localhost/example/
а на моем удаленном сервере URL-адрес http://example.com/
.
Для моего локального сервера я могу использовать следующее правило перенаправления htaccess:
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
Однако, когда я использую это на своем удаленном сервере, я получаю внутреннюю ошибку сервера. Вместо этого я должен использовать это: (обратите внимание на ведущую косую черту)
RewriteRule ^(.*)$ /index.php?page=$1 [L,QSA]
К сожалению, это не работает на моем локальном сервере: это правило перезаписи запрашивает http://localhost/index.php
вместо того http://localhost/example/index.php
на моем локальном сервере.
Как я могу заставить это работать как на моем удаленном, так и на локальном сервере?
Лучшим решением было бы изменить свой DocumentRoot
на вашем сервере разработки, чтобы URI (и, следовательно, все перезаписи) были такими же, как и на рабочем сервере.
Если у вас есть несколько сайтов на вашем сервере разработки, которые вы в настоящее время храните в отдельных папках, вы можете использовать для них отдельные поддомены.
Эта директива должна нормально работать в любом контексте каталога.
Пожалуйста, укажите ошибку из его журнала, когда он отвечает 500 Internal Server Error
, а также другую соответствующую конфигурацию из этой системы.