Назад | Перейти на главную страницу

htaccess rewriterule ведущая косая черта

Я использую 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, а также другую соответствующую конфигурацию из этой системы.