Назад | Перейти на главную страницу

Перенаправить домашнюю страницу, но не при наличии строк запроса

Я хочу перенаправить только домашнюю страницу сайта Wordpress, но только если исходный URL-адрес не содержит никаких строк запроса. Это работает:

RedirectMatch 307 ^/$ http://www.consumerenergyreport.com/ticker

... но перенаправляет URL-адреса с запросами. Я попытался:

RewriteCond ! %{QUERY_STRING}

... но, похоже, это не работает с RedirectMatch, только RewriteRule (см. рис).

Думаю, вам нужно использовать mod_rewrite

RewriteCond %{THE_REQUEST} ^GET\ /\ HTTP
RewriteRule / http://www.sod.com/ [R=307]

Это также будет означать, что он также не перенаправляет запросы POST на домашнюю страницу. Не уверен, что ты этого хотел. Но решил, что это могло означать параметры, такие как строка запроса.

Если вы хотите также перенаправить запросы HEAD

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /\ HTTP
RewriteRule / http://www.sod.com/ [R=307]

И если вы не хотели использовать THE_REQEST тогда вы можете сделать это с двумя условиями

RewriteCond %{REQUEST_URI} =/
RewriteCond %{QUERY_STRING} =""
RewriteRule / http://www.sod.com/ [R=307]

Изменить: RedirectMatch не является частью mod_rewrite. Это часть mod_alias, поэтому она полностью не зависит от условий перезаписи.