htaccess перенаправить все маршруты начинаются с строки запроса xxx - PullRequest
1 голос
/ 25 июня 2019

Я использую приведенный ниже код в .htaccess для перенаправления субдомена Domain1 (wordpress) на Domain2:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^learn.Domain1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.learn.Domain1\.com$
RewriteRule ^(.*)$ "https\:\/\/\Domain2\.com\/$1" [R=301,L]

Все в порядке.

Но загрузка моего продукта связывает это электронное письмо с пользователем для загрузки, начатой ​​с этого в woocommerce:

learn.Domain1.com/?download_file=xxxxxxxxxxxxxxxxxx

Я использую перенаправление cond, за исключением URL-адресов для загрузки:

RewriteCond %{REQUEST_URI} !^/?download_file=

Но это не работает!

Как я могу это исправить?

1 Ответ

2 голосов
/ 25 июня 2019

У вас есть 2 проблемы здесь:

  • ^ в регулярном выражении означает «начинается с», а ваш URI не запускается по параметрам запроса
  • как указано в документы , REQUEST_URI не включают параметры запроса, попробуйте QUERY_STRING:
RewriteCond %{QUERY_STRING} !^download_file=(.*)

ПРИМЕЧАНИЕ : из-за ^ это будет работать, только если параметр download_file является первым, если это не так, вы можете использовать:

RewriteCond %{QUERY_STRING} !(?:^|&)download_file=(.*)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...