使用.htaccess将旧网址和新网址重写到同一页面

时间:2013-10-28 16:46:56

标签: .htaccess mod-rewrite

目前有一个网页包含网址/results-details.php?mls_number=stringofnumbers。

我希望它重写为:/ results-details / stringofnumbers

但我希望它基本上可以解析回原始页面。

我也在内部更改网站上的所有网址以指向网址。所以我有两个重写规则:

RewriteCond %{QUERY_STRING} mls_number=([0-9]+)$
RewriteRule (.*) /new-homes/results-details/%1? [R=301,C]
RewriteRule ^results-details/([0-9]+)$ results-details.php?mls_number=$1

第二个规则在/ results-details / stringofnumbers形式的内部链接上可以很好地工作,但是第一个规则没有正确链接到第二个规则并且不确定我做错了什么。

基本上尝试保留可能存在的旧URL的任何链接,但在内部开始使用新的URS。

建议?

1 个答案:

答案 0 :(得分:0)

你需要匹配实际请求而不是URI,因为重写引擎循环:

RewriteCond %{THE_REQUEST} \ /new-homes/results-details\.php?mls_number=([0-9]+)
RewriteRule ^ /new-homes/results-details/%1? [L,R=301]

RewriteRule ^results-details/([0-9]+)$ results-details.php?mls_number=$1