Apache HTTP_URI 重定向所有内容,但某些 url query_string
Apache HTTP_URI redirect everything but sertain urls that query_string
我们想将所有流量重定向到我们的新页面。我们仍然希望 ceratin url 仍然可以在我们的旧页面上访问,因为这些 url 已被我们的合作伙伴使用并且尚未准备好迁移。
我遇到的问题是 QUERY_STRING 个参数。
我目前的规则:
RewriteCond %{REQUEST_URI} !^/endfile.php
RewriteCond %{REQUEST_URI} !^/sites/default/files/pdffolder/
RewriteCond %{REQUEST_URI} !^/insure/agency
# RewriteCond %{REQUEST_URI} !^/content/insurance1?szs=000029&wssl=1
# RewriteCond %{REQUEST_URI} !^/text/insurance2?wssl=1&zst=enter
RewriteRule (.*) https://www.new-domain.eu/ [R=301,L]
代码适用于拳头 3。我无法让它适用于第 4 条和第 5 条规则。我目前已经注释掉了。
我尝试使用 QUERY_STRING 规则,但没有成功。有什么方法可以在重写条件下使用AND吗?
有什么想法吗?
您无法使用 REQUEST_URI
匹配查询字符串。使用 THE_REQUEST
来匹配 URI 和查询:
RewriteCond %{REQUEST_URI} !^/endfile\.php [NC]
RewriteCond %{REQUEST_URI} !^/sites/default/files/pdffolder/ [NC]
RewriteCond %{REQUEST_URI} !^/insure/agency [NC]
RewriteCond %{THE_REQUEST} !\s/+content/insurance1\?szs=000029&wssl=1[&\s] [NC]
RewriteCond %{THE_REQUEST} !\s/+text/insurance2\?wssl=1&zst=enter[&\s] [NC]
RewriteRule ^ https://www.new-domain.eu/? [R=301,L]
另请注意在目标中使用尾随 ?
来去除任何现有的查询字符串。
我们想将所有流量重定向到我们的新页面。我们仍然希望 ceratin url 仍然可以在我们的旧页面上访问,因为这些 url 已被我们的合作伙伴使用并且尚未准备好迁移。
我遇到的问题是 QUERY_STRING 个参数。
我目前的规则:
RewriteCond %{REQUEST_URI} !^/endfile.php
RewriteCond %{REQUEST_URI} !^/sites/default/files/pdffolder/
RewriteCond %{REQUEST_URI} !^/insure/agency
# RewriteCond %{REQUEST_URI} !^/content/insurance1?szs=000029&wssl=1
# RewriteCond %{REQUEST_URI} !^/text/insurance2?wssl=1&zst=enter
RewriteRule (.*) https://www.new-domain.eu/ [R=301,L]
代码适用于拳头 3。我无法让它适用于第 4 条和第 5 条规则。我目前已经注释掉了。
我尝试使用 QUERY_STRING 规则,但没有成功。有什么方法可以在重写条件下使用AND吗?
有什么想法吗?
您无法使用 REQUEST_URI
匹配查询字符串。使用 THE_REQUEST
来匹配 URI 和查询:
RewriteCond %{REQUEST_URI} !^/endfile\.php [NC]
RewriteCond %{REQUEST_URI} !^/sites/default/files/pdffolder/ [NC]
RewriteCond %{REQUEST_URI} !^/insure/agency [NC]
RewriteCond %{THE_REQUEST} !\s/+content/insurance1\?szs=000029&wssl=1[&\s] [NC]
RewriteCond %{THE_REQUEST} !\s/+text/insurance2\?wssl=1&zst=enter[&\s] [NC]
RewriteRule ^ https://www.new-domain.eu/? [R=301,L]
另请注意在目标中使用尾随 ?
来去除任何现有的查询字符串。