DLE и htaccess редирект

12 3
Texnolog
На сайте с 18.06.2007
Offline
67
15158

Стандартный htaccess DLE 9.2, как увязать в нем 301 на домен без www?, дописывал "RewriteRule (.*) http://sait.net/$1 [R=301,L]":

RewriteEngine On


# Редиректы
RewriteRule (.*) http://сайт.net/$1 [R=301,L]
RewriteRule ^page/(.*)$ index.php?cstart=$1 [L]

вылетает с ошибкой: Moved Permanently

The document has moved here.

Вообщем увязать его неполучается :confused:

и так же хотел бы автоматов все внешние линки на сайте имели вид (сайт.net/go/?ссылка.html)

слышал это делается через RewriteCond %{REQUEST_URI} .*/go/?(.*)$ [NC], это ведь тоже не получиться увязать с существующими значениями будет конфликтовать, вообщем кто спец в хтекесах или уже делал подобные настройки на дле 9.2 помогите :)

дефолтный хтекес

DirectoryIndex index.php

RewriteEngine On

# Редиректы
RewriteRule ^page/(.*)$ index.php?cstart=$1 [L]


# Сам пост
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$ engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4 [L]

RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$4&news_page=$2&cstart=$3 [L]
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$2 [L]
RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$2&newsid=$3 [L]
RewriteRule ^([^.]+)/([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2 [L]

RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$1&cstart=$2 [L]
RewriteRule ^page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2&news_page=$1 [L]
RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$1&newsid=$2 [L]
RewriteRule ^([0-9]+)-(.*).html(/?)+$ index.php?newsid=$1 [L]

# За день
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2&day=$3 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&day=$3&cstart=$4 [L]
# За весь месяц
RewriteRule ^([0-9]{4})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&cstart=$3 [L]
# Вывод за весь год
RewriteRule ^([0-9]{4})(/?)+$ index.php?year=$1 [L]
RewriteRule ^([0-9]{4})/page/([0-9]+)(/?)+$ index.php?year=$1&cstart=$2 [L]
# вывод отдельному тегу
RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]
# вывод для отдельного юзера
RewriteRule ^user/([^/]*)/rss.xml$ engine/rss.php?subaction=allnews&user=$1 [L]
RewriteRule ^user/([^/]*)(/?)+$ index.php?subaction=userinfo&user=$1 [L]
RewriteRule ^user/([^/]*)/page/([0-9]+)(/?)+$ index.php?subaction=userinfo&user=$1&cstart=$2 [L]
RewriteRule ^user/([^/]*)/news(/?)+$ index.php?subaction=allnews&user=$1 [L]
RewriteRule ^user/([^/]*)/news/page/([0-9]+)(/?)+$ index.php?subaction=allnews&user=$1&cstart=$2 [L]
RewriteRule ^user/([^/]*)/news/rss.xml(/?)+$ engine/rss.php?subaction=allnews&user=$1 [L]
# вывод всех последних новостей
RewriteRule ^lastnews/(/?)+$ index.php?do=lastnews [L]
RewriteRule ^lastnews/page/([0-9]+)(/?)+$ index.php?do=lastnews&cstart=$1 [L]
# вывод в виде каталога
RewriteRule ^catalog/([^/]*)/rss.xml$ engine/rss.php?catalog=$1 [L]
RewriteRule ^catalog/([^/]*)(/?)+$ index.php?catalog=$1 [L]
RewriteRule ^catalog/([^/]*)/page/([0-9]+)(/?)+$ index.php?catalog=$1&cstart=$2 [L]
# вывод непрочитанных статей
RewriteRule ^newposts(/?)+$ index.php?subaction=newposts [L]
RewriteRule ^newposts/page/([0-9]+)(/?)+$ index.php?subaction=newposts&cstart=$1 [L]
# Статистические страницы
RewriteRule ^static/(.*).html(/?)+$ index.php?do=static&page=$1 [L]
# вывод избранных статей
RewriteRule ^favorites(/?)+$ index.php?do=favorites [L]
RewriteRule ^favorites/page/([0-9]+)(/?)+$ index.php?do=favorites&cstart=$1 [L]

RewriteRule ^rules.html$ index.php?do=rules [L]
RewriteRule ^statistics.html$ index.php?do=stats [L]
RewriteRule ^addnews.html$ index.php?do=addnews [L]
RewriteRule ^rss.xml$ engine/rss.php [L]
RewriteRule ^sitemap.xml$ uploads/sitemap.xml [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/page/([0-9]+)(/?)+$ index.php?do=cat&category=$1&cstart=$2 [L]
RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)/rss.xml$ engine/rss.php?do=cat&category=$1 [L]
RewriteRule ^page,([0-9]+),([^/]+).html$ index.php?do=static&page=$2&news_page=$1 [L]
RewriteRule ^print:([^/]+).html$ engine/print.php?do=static&page=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+).html$ index.php?do=static&page=$1 [L]
DiAksID
На сайте с 02.08.2008
Offline
236
#1

универсальный редирект с www на без-www (имя сайта указывать не нужно):


RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http:\/\/%1/$1 [R=301,QSA,L]

для гламурности, и обратный (с без-www на www) и тоже универсальный:


RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http:\/\/www\.%{HTTP_HOST}\/$1 [R=301,QSA,L]
show must go on !!!...
Texnolog
На сайте с 18.06.2007
Offline
67
#2

да помогло спс, для реализации второго поставил dude Smart Leech (вдруг кому понадобится, ничего так модуль)

piratstvo
На сайте с 15.04.2009
Offline
123
#3

Помогите пожалуйста сделать редиректы

1) при наборе в строке браузера /category

перенаправляло на /category/

2) при наборе в строке браузера /index.php

перенаправляло на главная/

3) при наборе в строке браузера /index.html

перенаправляло на главная/

Trafikgon
На сайте с 24.10.2008
Offline
174
#4

Тоже интересно как именно в хтассес редирект организовать при наборе в строке браузера /category

перенаправляло на /category/

такой уменя образец примерный есть

RewriteRule ^humor/([^/]+)$ http://%{HTTP_HOST}/humor/$1/ [R=301,L,QSA]

но тут тока слеш добавляет именно для чпу страниц в конце /

или я затупил вместо HTTP_HOST писать имя сайта например shop.com? пробывал один фиг редиректа нету с /category на /category/

. (#)
siv1987
На сайте с 02.04.2009
Offline
427
#5

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

RewriteRule ^index\.(php|html?)$ / [R=301,L]

добавлять надо в самом начале, если есть редирект склейки доменов - после него.

piratstvo
На сайте с 15.04.2009
Offline
123
#6
siv1987:
RewriteRule ^([^/.]+)$ /$1/ [R=301,L]
RewriteRule ^index\.(php|html?)$ / [R=301,L]

добавлять надо в самом начале, если есть редирект склейки доменов - после него.

К сожалению, неправильно редиректит (((

Сссылка стала иметь такой вид: ?do=cat&category=имя категории/

Trafikgon
На сайте с 24.10.2008
Offline
174
#7

Тоесть так чтоли?

RewriteRule ^humor/([^/]+)$ /$1/ [R=301,L] http://%{HTTP_HOST}/humor/$1/

siv1987
На сайте с 02.04.2009
Offline
427
#8
piratstvo:
К сожалению, неправильно редиректит (((

да, что есть index.php упустил из виду

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

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteRule ^index\.(php|html?)$ / [R=301,L]

При отключенном чпу, вторую и третью строчку не юзать.

Тоесть так чтоли?

Trafikgon, куда так если тебе нужно закрыть категорию у который нет слэша

RewriteRule ^humor$ /$1/ [R=301,L]

piratstvo
На сайте с 15.04.2009
Offline
123
#9
siv1987:
да, что есть index.php упустил из виду

RewriteRule ^([^/.]+)$ /$1/ [L,R=301]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.(php|html?)$ / [R=301,L]

Вот теперь работает. Огромное вам спасибо и + в репу )

Trafikgon
На сайте с 24.10.2008
Offline
174
#10

Все пашет спасибо +500

12 3

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