Совмещение нескольких mod rewrite

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем blacks, 13 авг 2009.

Статус темы:
Закрыта.
  1. blacks

    blacks

    Регистр.:
    26 сен 2008
    Сообщения:
    391
    Симпатии:
    24
    Есть вот такие вот директивы...
    Нужно их-как привести в рабочие состояние
    - по отдельности работают а вместе нет
    - или идет зацикливание и FF выдает ошибку
    - или выдается 404 403 500 ошибки :(

    Помогите пожалуйста. Спасибо.

    Код:
    # инициализация
    RewriteEngine On
    RewriteBase /
    
    # читаем куки
    RewriteCond %{HTTP_COOKIE} lang=([^;]+) [NC]
    
    # делаем редирект на субдомен в зависимости от куки. 1% - переменная
    RewriteRule ^(.*)$ http://%1/site.spb.ru/ [R=302,QSA,L]
    
    # соотношение паки и субдомена
    	RewriteCond %{HTTP_HOST} (www\.)?en\.site.\spb\.ru$
    	RewriteCond %{REQUEST_URI} !^(/)?en/
    	RewriteRule ^(.*)$ en/$1
    
    	RewriteCond %{HTTP_HOST} (www\.)?ru\.site.\spb\.ru$
    	RewriteCond %{REQUEST_URI} !^(/)?ru/
    	RewriteRule ^(.*)$ ru/$1
    выдается ошибка:

    "
    Firefox определил, что сервер перенаправляет запрос
    на этот адрес таким образом, что он никогда не завершится.
    Эта проблема может возникать при отключении или запрещении принятия cookies.
    "



    к вышеизложенным директива в последствии необходимо будет еще добавить редирект
    с www --> на --> без www


    например:
    Код:
    		# RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    		# RewriteRule ^(.*)$ http://%1/$1 [R=301,QSA,]
     
  2. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    125
    У меня несколько вопросов:
    1. RewriteRule ^(.*)$ http://%1/site.spb.ru/ [R=302,QSA,L]
    что в куки lang?
    нет ли ошибки в выделенном участке. Может быть там точку вместо слеша?
    то что захватили в RewriteRule нужно дописать потом к адресу.
    т.к. я считаю, что так:
    RewriteRule ^(.*)$ http://%1.site.spb.ru/$1 [R=302,QSA,L]
    2. нужно добавить к этому правилу условий, чтобы не срабатывал редирект, если мы уже в поддомене.
    3. образать ввв не вижу смысла, так как ты все равно делаешь редерект на другой хост в итоге. указывай сразу там ввв или без ввв.
    4. RewriteCond %{REQUEST_URI} !^(/)?en/
    выделенные слеши имхо не нужны, т.к. прописан RewriteBase
    может еще что есть, попробуй пока это поисправлять.
     
  3. juggernaut13

    juggernaut13 Постоялец

    Регистр.:
    23 авг 2009
    Сообщения:
    59
    Симпатии:
    16
    добавляй [L] вконец
     
Статус темы:
Закрыта.