apache rewrite:如何检查查询参数是否为空或不存在?

apache rewrite:如何检查查询参数是否为空或不存在?

最好用一个例子来解释:

- If I enter either URLs in my brower 
  - www.myhost.com/my-page.html?year=
  - www.myhost.com/my-page.html

- I then want to get redirected to  www.my-2nd-host.com/current-year/my-page.html

你知道怎么做吗?谢谢。

答案1

你可以使用 mod_rewrite 这样做:

RewriteEngine On
RewriteCond %{QUERY_STRING) !(^|&)year=[^&]+
RewriteRule ^/?my-page\.html$ https://www.my-2nd-host.com/current-year/my-page.html [R=302,L]

正则表达式(^|&)year=[^&]+检查yearURL 参数是否存在非空值。!然后前缀否定表达式,因此当 URL 参数为空或根本不存在时,它会成功。

相关内容