此代码没有响应:
RewriteEngine On
RewriteRule ^/index.asp?lang=he&cid=270$ /?aid=2260 [R=301,L]
答案 0 :(得分:0)
当将规则模式与其进行比较时,查询字符串(" http get arguments")是不的URL的一部分。您需要使用单独的条件来匹配它:
RewriteEngine On
RewriteCond %{QueryString} ^lang=he&cid=270$
RewriteRule ^/?index\.asp$ /?aid=2260 [R=301,L]
另请注意规则匹配模式开头附近的附加?
。在动态配置文件中将URL与 relative (因此不带前导斜杠)进行比较。额外的?
使得前导斜杠可选,因此规则现在可以在动态配置文件(" .htaccess
"样式文件)中使用,同样在真正的http服务器主机配置中也可以。
一般提示:您应该始终更喜欢将此类规则放在http服务器(虚拟)主机配置中,而不是使用动态配置文件(.htaccess
样式文件)。这些文件非常容易出错,难以调试,它们确实会降低服务器的速度。它们仅作为最后一个选项提供给您无法控制主机配置的情况(阅读:非常便宜的托管服务提供商),或者您有一个依赖于编写自己的重写规则的应用程序(这是一个明显的安全噩梦) )。
答案 1 :(得分:0)
此代码重定向:
RewriteCond %{QUERY_STRING} ^lang=he&cid=270($|&)
RewriteRule ^/?index.asp$ /?aid=2260 [R=301,L]