mod_rewrite добавляет строку запроса, когда не используется конечная косая черта - PullRequest
1 голос
/ 14 марта 2012

Я провел некоторое время в Google и SO, пытаясь выяснить это, и теперь мне пришлось прибегнуть к задаче еще одного вопроса mod_rewrite ....

Я использую mod_rewrite, и по большей части он работает нормально.

У меня проблемы с:

# Load pages for health-it while keeping the URL masked
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^health-it/([-a-z0-9]+)/? /health-it/loadPage.php?p=$1 [NC,L]

У меня есть URI, который я хочу:

/health-it/aimsconsultant

Проблема в том, что mod_rewrite делает это:

/health-it/aimsconsultant/?p=aimsconsultant

Страница все еще загружается, но проблема связана с URI.

/health-it/aimsconsultant/

Работает как положено. Следует отметить, что / health-it / aimconsultant является каталогом, и, возможно, именно в этом причина? Я считаю, что Apache перенаправляет добавить косую черту для каталогов, но почему он добавляет строку запроса?

Отлично работает для внутренних страниц (без каталога для внутренних страниц):

/health-it/aimsconsultant/manufacturer-signup

и

/health-it/aimsconsultant/manufacturer-signup/

работают правильно.

Единственная проблема на первом уровне ... Это не имеет смысла для меня, и я озадачен тем, почему это происходит. Пожалуйста, может кто-нибудь объяснить мне, как это исправить и почему это работает таким образом?

Спасибо за вашу помощь

Ответы [ 2 ]

1 голос
/ 14 марта 2012

ОК, извините, я неправильно прочитал? за $!

Попробовал добавить это, похоже на работу:

DirectorySlash Off

По умолчанию он включен, и поэтому, когда Apache пытается получить каноническое представление вашего URL, он возвращается к каталогу.

0 голосов
/ 14 марта 2012

Добавить конкретную запись для версии URL без косой черты:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^health-it/([-a-z0-9]+)? /health-it/loadPage.php?p=$1 [NC,L]

У меня уже была такая проблема, когда mod_rewrite заканчивается добавлением строки запроса, даже без флага QSA. Не знаю причину почему ...

...