如何在asp页面中将301重定向写入htaccses文件中的php页面

时间:2017-06-11 07:45:49

标签: .htaccess redirect

此代码没有响应:

RewriteEngine On
RewriteRule ^/index.asp?lang=he&cid=270$ /?aid=2260 [R=301,L]

2 个答案:

答案 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]