mod_rewrite, удаление косой черты и текущий каталог - PullRequest
0 голосов
/ 16 мая 2011

Я изучил связанные вопросы, но не могу понять это маленькое предостережение.Правило золотое , которое я видел, для удаления косой черты через mod_rewrite :

RewriteRule ^(.*)/$ /$1 [R,L].

Это все нормально ихорошо, но он удаляет предыдущую структуру каталогов, если она существует.Итак, если мое приложение запускается в корне размещенного пути, оно работает, но не в подкаталоге:

http://localhost/path/to/application/pretty/query/string/

Становится

http://localhost/pretty/query/string ( Примечание; слеш удаляется, но каталог также * )

Как сохранить текущий каталогместоположение, поэтому предыдущий пример возвращает ожидаемое:

http://localhost/path/to/application/pretty/query/string


Обновление

В конечном итоге эторади последовательности;подходит либо добавление или для удаления косой черты.Я работаю взад и вперёд между попытками использовать любой подход к работе, но безуспешно.

Ответы, которые либо добавляют, либо удаляют завершающий слеш, приемлемы!

1 Ответ

0 голосов
/ 16 мая 2011

Ну, я решил добавить:

Options +FollowSymLinks

RewriteEngine On
RewriteBase /_dev/_projects/mf_frame

RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1/ [R,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) ?routePath=$1 [L,QSA]

Я пропустил директиву RewriteBase. Я еще раз пойду и раздеться. Пожалуйста, не стесняйтесь предлагать альтернативы моему подходу, если есть что-то, что можно сделать лучше.

...