Сделать редиррект в .htaccess

S
На сайте с 17.12.2008
Offline
271
395

Есть урлы вида http://www.site.ru/topic403.html?sid=718157f6bdb3a72933bde086d8f872dc

Надо, чтобы с этих урлов было перенаправление на страницы типа http://www.site.ru/topic403.html

То есть, берем страницу, в которой есть что-то?sid=что-то2 и перенаправляем ее на что-то

15 жирных вечных ссылок с трастовых сайтов с высоким ТИЦ ( https://goo.gl/zd62Qa ) Найдем и устраним SEO-ошибки Вашего сайта, которые мешают продвижению ( https://goo.gl/gHsx1U ) Высококачественный рерайтинг: 50 р. / 1000 знаков ( https://goo.gl/5xDmhE )
izbushka
На сайте с 08.06.2007
Offline
110
#1

Как-то так

RewriteCond %{QUERY_STRING} ^sid=(.*)$
RewriteRule ^(.*)$ $1? [R,L]
S
На сайте с 17.12.2008
Offline
271
#2
izbushka:
Как-то так

Спасибо, круто, получилось.

Еще один вопрос.

Имеются урлы вида http://site.ru/topic-t265.html, они преобразовываются в урлы вида http://site.ru/topic265.html, то есть, выбрасывается -t

Осуществляется это с помощью кода

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^topic-t([0-9]+)\.html$ /topic$1\.html [R=301,L]

Теперь надо -t выбросить из урлов вида http://site.ru.ru/topic-t265-10.html, http://site.ru.ru/topic-t333-30.html

и т.д.

izbushka
На сайте с 08.06.2007
Offline
110
#3

Будет работать и со старыми ис новыми: т.е ищет -t[любые циры или тире]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^topic-t([0-9\-]+)\.html$ /topic$1\.html [R=301,L]

P.S. так же сработает и на http://site.ru.ru/topic-t333-30-40.html, будь внимателен )

Independence
На сайте с 29.10.2005
Offline
428
#4

А как правильно со слэшем разобраться.

Т.е. структура папок и подпапок такая:

/site/ [домены site.com, site.in]

/site/sitein/

/site/sitein/russia/

/site/sitein/latvia/

/site/sitein/poland/

site.com подгружает контент из папки /site/ - все работает нормально, htaccess не нужен.

site.in подгружает контент из папки /site/sitein/ и подпапок в зависимости от страны, т.е. если в браузере вводится адрес

site.in/russia/ , то открывается контент из папки /site/sitein/russia/

Проблема возникла со слэшем.

Т.е. site.in/russia/ - работает нормально. А при запросе без слэша site.in/russia в браузере адрес подменяется на site.in/sitein/russia/ , т.е. в середине адреса появляется подпапка, где контент находится. А надо, чтобы site.in/russia/ и site.in/russia открывались одинаково и без таких глюков.

izbushka
На сайте с 08.06.2007
Offline
110
#5

Independence, т.е. все урлы должны заканчиваться на слеш?

Если да то, поидее так (негде попробовать)

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

Independence
На сайте с 29.10.2005
Offline
428
#6

Сейчас в /site/ такой htaccess

RewriteRule ^sitein/ - [L]

RewriteCond %{HTTP_HOST} (www\.)?site\.in [NC]

RewriteRule (.*) sitein/$1 [L]

В папке /site/sitein/ в htaccess дополнительных инструкций нет, написано только RewriteEngine on и все.

Когда набираешь адрес

site.in/russia , то он в строке браузера меняется на site.in/sitein/russia/

А нужно, чтобы этого не было (т.е. чтобы /sitein/ не появлялось, как не появляется он когда набираешь site.in/russia/ )

+ чтобы адреса страниц для сайта site.com тоже не глючили после изменения файла htaccess (сейчас вроде все ок).

cheredov
На сайте с 07.04.2011
Offline
125
#7
Independence:
RewriteCond %{HTTP_HOST} (www\.)?site\.in [NC]
RewriteRule (.*) sitein/$1 [L]

удалите эти строки

Independence:
А нужно, чтобы этого не было (т.е. чтобы /sitein/ не появлялось
Иван Чередов (http://ivan.cheredov.com/about/)
Independence
На сайте с 29.10.2005
Offline
428
#8

Дык нам же надо домен site.in папке /sitein/ сопоставить. Если убрать

RewriteCond %{HTTP_HOST} (www\.)?site\.in [NC]

то как сервер определит, что при запросе адреса site.in/russia/ нужно брать контент из папки /site/sitein/russia, а не из /site/

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