Редирект .htaccess (Drupal)

RS
На сайте с 04.06.2010
Offline
5
5158

Добрый день,

Помогите пожалуйста с редиректом в htaccess (поиском пользовался, ответа не смог найти).

CMS Drupal, включены "чистые ссылки"

Ситуация следующая:

есть страничка: ht tp://www.site.ru/privet-poka

при вводе в строку браузера ht tp://site.ru/privet-poka (без www) происходит переадресация на ht tp://www.site.ru/index.php?q=privet-poka, а нужно на ht tp://www.site.ru/privet-poka

Сейчас htaccess выглядит так:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

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

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ ht tp://www.site.ru/ [R=301,L]

Заранее спасибо

NK
На сайте с 19.12.2010
Offline
32
#1

Попробуйте убрать строку:

RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Regvps - VPS в России (http://regvps.ru/linux-vps/) и Европе. Виртуальный выделенный сервер от 250 р
RS
На сайте с 04.06.2010
Offline
5
#2
nikola-kola:
Попробуйте убрать строку:
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Пробовал, убираю строку и не могу попасть в админку (остаюсь на главной).

Добавляю RewriteRule ^(.*)$ /$1 [L,QSA] и получаю: "Internal Server Error"

NK
На сайте с 19.12.2010
Offline
32
#3
RoyalSpirit:
Пробовал, убираю строку и не могу попасть в админку (остаюсь на главной).

ой, извините

попробуйте добавить вот это:

<?phpRewriteRule ^node/(.+)$ httр://www.vash-sait.ru/$1 [R=301,L]?>

Ту строку верните обратно

Если не получится, то смените

<?phpRewriteRule ^node/(.+)$ httр://www.vash-sait.ru/$1 [R=301,L]?>

на

<?phpRewriteRule ^index.php?q=(.+)$ httр://www.vash-sait.ru/$1 [R=301,L]?>

RS
На сайте с 04.06.2010
Offline
5
#4

nikola-kola, спасибо за помощь и ссылку на материалы, но увы не помогло

terranodar
На сайте с 07.01.2011
Offline
5
#5

RoyalSpirit,

Какая версия Друпала?

По умлочанию в них идёт .htaccess файл где есть специально закомментированные секции в количестве двух штук. Одна для перенаправления site -> www.site, вторая наоборот.

Надо только раскомментить нужный блок и всё.

вот он

  # If your site can be accessed both with and without the 'www.' prefix, you
# can use one of the following settings to redirect users to your preferred
# URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
#
# To redirect all users to access the site WITH the 'www.' prefix,
# (http://example.com/... will be redirected to http://www.example.com/...)
# adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
# RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
#
# To redirect all users to access the site WITHOUT the 'www.' prefix,
# (http://www.example.com/... will be redirected to http://example.com/...)
# uncomment and adapt the following:
# RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
# RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

И ещё - этот блок находится выше указанных Вами правил

Сервис http://tic-history.ru (http://tic-history.ru) - история изменения ТИЦ сайтов.
RS
На сайте с 04.06.2010
Offline
5
#6

terranodar, спасибо за наводку....как выяснилось

Это:

RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]

RewriteRule ^(.*)$ http://www.site.ru/$1 [L,R=301]

должно находиться строго над этим:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

тогда редирект корректно работает.

Ступил я короче...

Garin33
На сайте с 31.08.2009
Offline
169
#7

Сомневаюсь что порядок влияет хоть как-то.

Друпал рулит, качаем офиц. сборку (drupal.org) и будет счастье! Там и htaccess нормальные и все включено - ничего изобретать не надо.

Потому что Drupal - это круто.

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