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

Статус
В этой теме нельзя размещать новые ответы.

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,]
 
У меня несколько вопросов:
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
может еще что есть, попробуй пока это поисправлять.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху