.htaccess 正在尝试将对我的域的任何请求重定向到子域,而不使用查询字符串

drnojrws  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(90)

使用.htaccess,我试图找出如何将任何请求重定向到我的网站基本URL /域,但允许任何带有查询字符串的请求,如果可能,只允许特定的前置查询字符串。例如:

  • /的请求被重定向到blog.example.com/
  • /?anything的请求(即使没有=)将照常处理

如果任何人都能描述所有页面将如何重定向,除非只包含某些查询字符串,则会得到加分。

pxiryf3j

pxiryf3j1#

您可以使用此重写规则:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/?$ https://blog.example.com/ [R=301,L]
  • %{QUERY_STRING} ^$的条件确保查询字符串为空(以符号开头,后跟以符号结尾)。
  • 该规则确保路径最多包含一个斜杠并导致重定向。

如果要重定向除特定查询字符串之外的所有内容,可以使用一个非常类似的规则。

RewriteEngine on
RewriteCond %{QUERY_STRING} !^foo=bar$
RewriteRule ^/?$ https://blog.example.com/ [R=301,L]

不管你有多少重写规则,你只需要在你的.htaccess中有一个RewriteEngine on的示例。

相关问题