Как сделать 2 условия в Apache — Rewrite rule?

Коллеги, приветствую!

С mod_rewrite редко стыкаюсь, появилась задача сделать редирект при выполнению одновременно двух условий:
1. Адрес домена равно domain.com
2. Адрес страницы не равно domain.com/f/s.php

Пытаюсь юзать
RewriteCond %{SCRIPT_URI } !^domain.com/f/s.php
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule ^(.*)$ newdomain.com/$1 [R=301,L]

Но оно редиректит даже если адрес страницы совпадает с domain.com/f/s.php
подскажите пожалуйста, как лучше всего сделать.

Собственно даже 2 вопроса:
1. Как 2 условия прописать
2. Как написать условие страницы не равно domain.com/f/s.php
  • Вопрос задан
  • 1194 просмотра
Решения вопроса 1
@gracer
RewriteCond %{HTTP_HOST} ^domain\.ru$
RewriteCond %{REQUEST_URI} !^/f/s\.php$
RewriteRule ^(.*)$ newdomain.com/$1 [R=301,L]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
SagePtr
@SagePtr
Еда - это святое
Если верить этой странице: httpd.apache.org/docs/2.2/mod/mod_rewrite.html
то srcipt_uri содержит также протокол (http://)
Ответ написан
Комментировать
antonzol
@antonzol Автор вопроса
добавил http:// перед новым доменом, чтоб на новый домен переводило а не дописывало новый к старому.
RewriteCond %{HTTP_HOST} ^domain\.ru$
RewriteCond %{REQUEST_URI} !^/f/s\.php$
RewriteRule ^(.*)$ newdomain.com/$1 [R=301,L]


Получается, что в $1 хранится домен и он много раз дописывается в строку.
В принципе устраивает и без переменной - редирект на главную.

Спасибо большое!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы