mod_rewrite косая черта для каталога и удалить для файла URL - PullRequest
0 голосов
/ 10 марта 2012

Хорошо.Я получил эту проблему, я пытался удалить последнюю косую черту в URL-адресе файла, например http://domain.com/styles/styles.css/.Я получил код для добавления косой черты в конец, но не могу понять, как выполнить условное выражение.

Если URL имеет расширение, удалите косую черту, иначе добавьте косую черту.прямо сейчас некоторые блоги говорят, что это решение, но все еще не работает для того, что я ожидаю.

RewriteCond %{REQUEST_URI} !\.[^./]+$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)([^/])$ http://%{HTTP_HOST}/$1$2/ [L,R=301]

Также проблема, когда я набираю http://domain.com/index, она переходит к http://domain.com/inde/.Нужна ваша помощь, ребята .. Большое спасибо заранее.

Ответы [ 3 ]

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

Почему вы хотите сделать внешнее перенаправление для таких «мебельных» файлов? Конечно, внутренний перенаправление - это то, что вы хотите здесь?

Options     -MultiViews

RewriteCond %{REQUEST_URI} !-d
RewriteRule ^(.+)/$        $1         [L]

Советую отключить взаимные просмотры, если вы их не используете, так как это может генерировать подзапросы, которые запутывают вещи.

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

Ваши RewriteCond условия логически инвертированы, потому что у вас там есть оператор !. Таким образом, перезапись применяется только для тех входных данных, которые не имеют расширений и не имеют завершающей косой черты!

Вы можете сделать это с одним правилом без условий:

# Match any sequence of characters, ending in a dot followed
# by one or more characters that don't contain dots or slashes,
# followed by a final trailing slash.
#
# Rewrite this absolutely and treat as redirect.

RewriteRule ^(.*\.[^./]+)/$ /$1 [L, R=301]
0 голосов
/ 10 марта 2012

добавьте следующий код в ваш htaccess, для лучшего понимания.

RewriteCond %{HTTP_HOST} !^\.yourdomain\.com$ [NC]
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

I have a link : domain.com/folder/
it will change to : domain.com//folder

также Вы можете отключить перенаправление mod_dir, включив опцию DirectorySlash.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...