Удалите косую черту с помощью .htaccess, за исключением домашней / целевой страницы - PullRequest
17 голосов
/ 12 ноября 2010

Я успешно изменил свой файл .htaccess, чтобы удалить косые черты на большинстве страниц, но мне интересно, как освободить домашнюю страницу / каталог? Например:

domain.com / test / успешно перенаправляет на domain.com/test

ОДНАКО, когда я нажимаю на свой домен, он добавляет корневой документ

domain.com / перенаправляет на domain.com/index.php

Есть ли условие, которое я могу добавить, чтобы игнорировать косую черту корневого URL, чтобы она не пыталась удалить косую черту и добавить скрипт по умолчанию? Вот что у меня есть:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$  /$1 [R=301,L]

Ответы [ 3 ]

29 голосов
/ 18 ноября 2010

OK.После множества проб и ошибок я ответил на свой собственный вопрос.

Третья строка обозначает, что в URI должно быть что-то, чтобы выполнить перенаправление, таким образом, не перенаправляя, если URL содержит только начальный слеш.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} (.*)$
RewriteRule ^(.+)/$ http://www.domain.com/$1 [R=301,L]
17 голосов
/ 10 февраля 2014

Перенаправляет запрос для всех URL-адресов, заканчивающихся на /, за исключением корня:

RedirectMatch 301 ^(.+)/$ $1
9 голосов
/ 21 февраля 2012

Как насчет

RewriteEngine On
RewriteRule ^(.*)/$ http://%{HTTP_HOST}/$1 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...