Редирект с / на без /

12
footballstar
На сайте с 20.07.2010
Offline
94
955

Добрый вечер. Подскажите пжл, как сделать редирект со страницы, где в конце урла есть / т.е.

site.ru/news/

на страницу, где нет в конце слеша т.е.

site.ru/news

siv1987
На сайте с 02.04.2009
Offline
427
#1

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^.]+)/$ /$1 [R=301,L]

D
На сайте с 28.06.2008
Offline
1101
#2

Внимательно после этого проверьте работоспособность сайта. У меня к примеру такой код нарушил регистрацию на сайте, а проблему я заметил только через месяц...

DiAksID
На сайте с 02.08.2008
Offline
218
#3

подсказка, код который редиректит все страницы без слеша и суфикса на конце на страницы со слешем (что лично для меня является более логичным ;)):


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

ну, а если очень хочется извращений - делайте наоборот по аналогии...

show must go on !!!...
footballstar
На сайте с 20.07.2010
Offline
94
#4

для категорий работает, а для новостей в формате .html нет, можно ли что-нибудь сделать?

---------- Post added at 19:43 ---------- Previous post was at 19:42 ----------

DiAksID, спасибо, но снова для страниц с .html не работает.

По логике да, в конце должен быть слеш. Но я не знаю как сделать редирект, чтобы страницы в формате .html подчинялись ему что ли, оба кода добавил, для кат. пашет, для конечных страниц нет.

Asar
На сайте с 23.08.2004
Offline
322
#5
DiAksID:
ну, а если очень хочется извращений - делайте наоборот по аналогии...

А можно для валенков в танках пример наоборота? Чет аналогия не помогат...

siv1987
На сайте с 02.04.2009
Offline
427
#6
footballstar:
для категорий работает, а для новостей в формате .html нет

У вас что, на урл с .html есть закрывающий слэш /novosti.html/ ?

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)/$ /$1 [R=301,L]

DiAksID
На сайте с 02.08.2008
Offline
218
#7
Asar:
А можно для валенков в танках пример наоборота? Чет аналогия не помогат...

в RewriteCond уберите слеш из [] и добавьте его перед знаком конца строки. в RewriteRule слеш уберите. и все дела ...

страница в Вики о регулярках - на 10 минут изучения максимум, кстати ;)

footballstar
На сайте с 20.07.2010
Offline
94
#8

есть новость: xxx.html добавляю в конце / т.е. xxx.html/ страница просто обновляется, с тем же контентом. т.е. дубль, или я неверно думаю?

DiAksID
На сайте с 02.08.2008
Offline
218
#9
footballstar:
есть новость: xxx.html добавляю в конце / т.е. xxx.html/ страница просто обновляется, с тем же контентом. т.е. дубль, или я неверно думаю?

страницы со слешем и без слеша в конце - в любом случае разные адреса для ПС. будут дублями они или нет зависит от архитектуры, в 99% - чистые дубли.

ещё раз: тот код редиректит только те адреса у кототрых нет слеша и/или суфикса в конце на со слешем и xxx.html трогать не будет ессессно.

редиректить xxx.html на xxx.html/ слегка бредовая идея. есть вариант - менять суффиксы на слеш, но могут возникнуть проблемы со многоими CMS...

siv1987
На сайте с 02.04.2009
Offline
427
#10
footballstar:
есть новость: xxx.html добавляю в конце / т.е. xxx.html/ страница просто обновляется, с тем же контентом. т.е. дубль, или я неверно думаю?

Херня все это, лучше смотрите чтобы сама кмс из-за своей структуры не дублировала одну и ту же страницу. А если хотите уберечься от таких косяков, самый верный способ это проверка адреса в скрипте.

---------- Добавлено в 20:58 ---------- Предыдущее сообщение было в 20:57 ----------

DiAksID:
редиректить xxx.html на xxx.html/

ТС желает наоборот

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий