Вопрос по .htaccess

grishkov

Новичок
Вопрос по .htaccess

Здравствуйте, подскажите, пожалуйста.

Есть запись в .htaccess:
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteEngine On
RewriteRule ^([a-z_0-9\-]+)([a-zA-Z_0-9\/]*)$ index.php
</IfModule>

Которая делает перенаправление в индексный файл.

Как сделать так чтобы в случае если юзер зашел без WWW (например http://syte.com/catalog/redirect1/redirect2), он автоматически переправился на страйницу с WWW (http://WWW.syte.com/catalog/redirect1/redirect2)

Т.е. посути надо скрестить имеющуюся запись с этой:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^syte.com
RewriteRule (.*) http://www.syte.com/$1 [R=301,L]
 

grishkov

Новичок
Может я не очень понятно завдал вопрос. Попробую перефразировать. Есть папка catalog на сервере, в которой ледит index.php и .htaccess со след. содержанием:
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteEngine On
RewriteRule ^([a-z_0-9\-]+)([a-zA-Z_0-9\/]*)$ index.php
</IfModule>

Он передает адресную строку скрипту из index.php. Например если юзер в адресной строке укажет www.syte.com/catalog/folder/ то обработчиком аресной строки будет скрипт из index.php

Вот.. А как сделать чтобы работоспособнасть скрипта из имеющегося htaccess сохранялось (т.е. происходила передача скрипту в index.php), но в дополнение к этому происходил редирект со страницы без www на страницу с WWW.

Например, если чел ввел в браузер syte.catalog/folder/ , то произошло пернаправление на WWW.syte.com/catalog/folder/ и выполнился скрипт из WWW.syte.com/catalog/index.php


Автор оригинала: *****
ну так и добавь просто по сути эту запись перед имеющейся.
пробовал, не получается, может че не так делаю? Можешь кинуть свой вариант?
 

Фанат

oncle terrible
Команда форума
нет, не могу.
мне эти варианты не нужны.

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

grishkov

Новичок
Автор оригинала: *****
нет, не могу.
мне эти варианты не нужны.

не получаться там ничего не может.
эти два кода никак между собой не связаны и не взаимодействуют, никак в работе не пересекаются.
Заработало, спасибо!

Я прописывал
RewriteCond %{HTTP_HOST} ^syte.com/catalog
вместо: RewriteCond %{HTTP_HOST} ^syte.com

Вот рабочий вариант:

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^syte.com
RewriteRule (.*) http://www.syte.com/catalog/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteEngine On
RewriteRule ^([a-z_0-9\-]+)([a-zA-Z_0-9\/]*)$ index.php
</IfModule>
 

Фанат

oncle terrible
Команда форума
если первыое правило лежит в папке catalog , то вообще непоняно, в чем проблема.
редирект на ввв надо ведь на весь сайт, а не одну только папку?
при чем здесь тогда вообще объединение этих файлов, если они все равно должны лежить в разных файлах?

-~{}~ 05.03.10 11:31:

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

grishkov

Новичок
В разных файлах не работало. В корне сайта лежит правило, которое пришлось продублировать:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^syte.com
RewriteRule (.*) http://www.syte.com/$1 [R=301,L]

Может у меня хостинг такой, что независимо от того что лежит в .htaccess он перекрывается из .htaccess вложенной папки?
 

Фанат

oncle terrible
Команда форума
да без разницы - перекрывается, или нет. не должны они никак взаимодействовать вообще.
до вложенной папки дело просто не дойдет, если запрос придет без ввв.
 
Сверху