Перенаправление >> domain.com/test на другой URL — адрес (domain.com/test3 использование .htaccess (wp)

#apache #.htaccess #url #redirect

#apache #.htaccess #url #перенаправление

Вопрос:

Я пытаюсь перенаправить один полный URL-адрес

 
But this is not working ...
 

Комментарии:

1. Ваш RewriteCond никогда не будет совпадать, потому https://www.moccioso.com/d.php? id=ultimateselection.zip что это не имя хоста.

2. Какое лучшее решение поможет мне достичь этого? С вашей точки зрения

Ответ №1:

 RewriteCond %{HTTP_HOST} ^https://www.moccioso.com/d.php? 
id=ultimateselection.zip$ 
RewriteRule ^$ http://moccioso.com/sd_product/ultimateselection-zip 
[L,R=301]
 

(Я предполагаю, что вы не упаковали код в несколько строк в своем реальном коде?)

HTTP_HOST Переменная содержит заголовок Host HTTP-запроса. т.е. имя хоста, указанное в запросе, например. www.example.com только — здесь нет схемы, URL-пути или строки запроса. Таким образом, эта RewriteCond директива никогда не будет соответствовать.

Но вы также пытаетесь сопоставить пустой URL-путь с RewriteRule шаблоном ^$ — так что, опять же, это никогда не будет соответствовать. В вашем примере URL-путь равен /d.php . RewriteRule Шаблон соответствует только URL-пути.

Вы также перенаправляете на http (не https ) в этой директиве? В вашем примере используется https . Вы также удаляете www поддомен, но опять же, ваш пример включает его?

Если вы перенаправляете с / на одно и то же имя хоста и имеете только один домен, вам не нужно явно указывать доменное имя (т.е. запрошенное имя хоста) в правиле.

Чтобы сопоставить со строкой запроса, вам необходимо сопоставить с переменной QUERY_STRING сервера.

Вместо этого попробуйте выполнить следующее, расположенное в верхней части вашего .htaccess файла.

 RewriteCond %{QUERY_STRING} ^id=ultimateselection.zip$ 
RewriteRule ^d.php$ /sd_product/ultimateselection-zip [R=301,L]
 

Это должно быть в верхней части вашего .htaccess файла. Сначала протестируйте 302 (временное) перенаправление, чтобы избежать потенциальных проблем с кэшированием.

Очистите кэш вашего браузера перед тестированием.