2013-10-28 134 views
0

当前有一个页面,其URL为URL /results-details.php?mls_number=stringofnumbers。使用.htaccess将旧网址和新网址重写为相同页面

我希望它重新写入到:/结果的细节/ 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 

第二条规则适用于它自己在/内部链接结果的细节/ stringofnumbers形式很好,但第一个正确未链接到第二个并不确定我做错了什么。

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

对此提出建议?

回答

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 
+0

尝试这样做,它似乎并没有做任何事情。不确定它是否匹配失败,或者无法重写URL或只是循环。 – user1959500