URL重写不可能?

时间:2015-02-24 10:39:05

标签: .htaccess rewrite

我有一个有这个网址的网站: http://www.example.com/stage?dept=01 我想把这个网址转换成这个 http://www.example.com/stage-ain.html

我希望新的网址覆盖标准的html,它会成为唯一可用的网址(适用于搜索引擎优化)。

我这样做,但不行:

RewriteEngine On
RewriteRule ^stage?dept=01$ stages-ain.html [R=301]

有你的想法吗?

由于

1 个答案:

答案 0 :(得分:1)

RewriteRule的第一个参数与查询字符串不匹配。您编写的正则表达式与网址stagedept=01stagdept=01匹配。

您想要使用RewriteCond代替。您可以使用%{QUERY_STRING}变量,但这可能会导致无限循环。相反,您可能希望匹配%{THE_REQUEST}

RewriteCond %{THE_REQUEST} /stage\?dept=01
RewriteRule ^ stages-ain.html [R,L,QSD]

当您测试了一切按预期工作时,将[R]标记更改为[R=301]。始终将L标志与外部重定向一起使用,除非您有充分的理由继续重写,因为这可能会导致一些奇怪的问题。

有关详细信息,请参阅the documentation