将技术链接重定向到SEO链接

时间:2016-06-16 08:59:32

标签: .htaccess mod-rewrite url-rewriting isapi-rewrite

我有一个适用于SEO友好网址的地图文件

现在客户希望不允许用户访问技术链接意味着只有SEO链接应该是可访问的

例如我的地图文件看起来像

buche-massiv-weiss-lackiert.html /?page=datail&productid=1212
目前SEO正在运作,但我需要的是如果用户称之为 技术链接,即

/?page=datail&productid=1212

如果还应该首先重定向到SEO链接,然后应该调用该页面。

最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

在同一个映射文件中添加一个反向条目,如下所示:

/?page=datail&productid=1212 buche-massiv-weiss-lackiert.html

然后将此规则放在htaccess的顶部,以便重定向到漂亮的URL:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/*(/.*?)\sHTTP [NC]
RewriteCond %1::${mymap:%1} ^(.*)::.
RewriteRule .* ${mymap:%1}? [L,NE,R=301]

这假设您RewriteMap的名称是mymap。将其更改为您的地图名称。

答案 1 :(得分:0)

使用Helicon Ape,你可以在同一个地图文件上使用反向地图,如下所示:

RewriteEngine On
RewriteMap map_rev txt_rev:my_map_file.txt [NC]
RewriteCond ${map_rev:$1|NOT_FOUND} (.*)
RewriteCond %1 !NOT_FOUND 
RewriteRule (.+) %1 [R]

然后是您现有的地图规则。 使用ISAPI_Rewrite,您将不得不创建另一个反转的映射文件,并确保两个文件的内容同步。用法类似于:

RewriteEngine On
RewriteMap map_rev txt:my_rev_map_file.txt [NC]
RewriteCond ${map_rev:$1|NOT_FOUND} (.*)
RewriteCond %1 !NOT_FOUND 
RewriteRule (.+) %1 [R]