Я хотел бы сделать перенаправление в Apache с доменом на основе правило. Например,
Если пользователь обращается к странице с example.com
или другой связанной страницы ( example.com/another-url/
), тогда перенаправьте на example .com / page.html
. В противном случае покажите нормальную страницу.
Я пишу в .htaccess
:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^example.com
RewriteRule .* /page.html [R=302,L]
</IfModule>
Но это не работает.
Предположительно у вас на этой учетной записи несколько доменов?
Для перенаправления либо example.com/
, либо example.com/another-url/
на пример. com/page.html
тогда вы можете сделать что-то подобное в .htaccess
:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(|another-url/)$ /page.html [R=302,L]
Серверная переменная HTTP_HOST
содержит запрашиваемый хост. Шаблон ^(|another-url/)$
совпадает либо с пустым URL-путем (т.е. корнем документа), либо с другим-url/
(за вычетом префикса каталога).
RewriteCond %{REMOTE_ADDR}. !^one.domain.com RewriteRule .* /page.html [R=302,L] Это перенаправило бы все на
/page.html
. Проблема с исходными директивами...
REMOTE_ADDR
- это IP-адрес клиента, делающего запрос, а не запрашиваемый хост .- Префикс
!
на CondPattern отрицает регекс. Итак, в приведенном выше примере он совпадает, когдаREMOTE_ADDR
- это , а неexample.com
. (Всегда верно.)- Шаблон
.*
RewriteRule
совпадает с каждым URL!