Редирект страниц без слэша (разрешить .html) htaccess

denik

Постоялец
Регистрация
1 Июл 2011
Сообщения
80
Реакции
40
Доброго дня!

Столкнулся с задачей, необходимо делать редирект со страниц без слэша на те же страницы, только добавив слэш средствами .htaccess.
Например, если открыли Для просмотра ссылки Войди или Зарегистрируйся => Для просмотра ссылки Войди или Зарегистрируйся
Но, страницы html должны работать. Например Для просмотра ссылки Войди или Зарегистрируйся

Пробовал так, но это почему-то не срабатывает:
Код:
#slash
RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteCond %{REQUEST_URI} !^(.*)\.html$
RewriteRule .* %1/ [R=301,L]
Вернее срабатывает, но так же позволяет страницы типа:
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
...

Помогите найти ошибку...? :)
 
как-то так:
Код:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
правда может конфликтовать с другими RewriteRule
 
Попробуй этот код:
Код:
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

Добавляет слеш ко всем урлам, которые не заканчиваются на слеш, кроме урлов вида domain.com/folder/asd.html (я имею в виду содержащих точку)
 
Код:
#добавл¤ем где надо слеш
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.(php|js|css|jpe?g|html?|png|gif|rar|zip|gz|7z)$
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1/ [L,R=301]
#убираем дубли слешь

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

где то так
 
rex1963, не обязательно делать проверку для картинок и архивов, так как перед этим есть проверка (%{REQUEST_FILENAME} !-f) на существование файла.
И нужно быть внимательным, POST запрос отправленный на страницу без слеша срабатывать не будет, так как будет срабатывать редирект :)
 
Последнее редактирование:
Страница со слешем - чото я туплю, но как это?
Для меня адрес asdf.jj/cft/privet.htm = страница, где здесь нужен флешь?
asdf.jj/cft/ - директория, но нужно учитывать, что для поисковика asdf.jj/cft/ и asdf.jj/cft адреса разные, и нужно приводить адрес директории к одному виду, либо со слешем, либо без него. следует проверять чтобы не было возможности сделать исходный адрес таким asdf.jj/cft///, или таким asdf.jj/cft////ggg/privet.htm.
 
Назад
Сверху