Регулярное выражение И ИЛИ условия

Мне нужно сопоставить все URL-адреса, в которых есть mydomain.com, и которые не содержат /admin/ или? Page=
я попробовал следующее:

RedirectRule (mydomain.com)(^(?!.*(/admin|\?page=)))  http://www.mydomain.com?page=666

отрицательная часть работает хорошо:

RedirectRule ^(?!.*(/admin|\?page=))  http://www.mydomain.com?page=666  

но mydomain является псевдонимом какого-либо другого домена, и я хочу перенаправить только для псевдонима (mydomain.com)

Я использую это как правило перенаправления в файле iirf.ini (поддерживает синтаксис htaccess).

Спасибо заранее и хорошего дня:-)

1 ответ

Решение

Попробуйте следующие правила.htaccess

#has mydomain.com
RewriteCond %{HTTP_HOST} mydomain\.com$ [NC] 
#not admin
RewriteCond %{REQUEST_URI} !^/admin/ [NC] 
#not page=
RewriteCond %{QUERY_STRING} !(^|&)page= [NC] 
#redirect
RewriteRule ^ http://www.mydomain.com?page=666 [R=301,L]
Другие вопросы по тегам