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

redirecting technical links to SEO links

我有一个地图文件,它可以很好地处理 SEO 友好的 URL

现在客户希望不允许用户访问技术 links 意味着只能访问 SEO links

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

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

目前 SEO 正在运行,但我需要的是如果用户调用它 技术 link 即

/?page=datail&productid=1212

if 也应该先重定向到 SEO link 然后再调用页面。

最好的方法是什么?

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

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

然后在您的 htaccess 顶部设置此规则以重定向到 pretty URL:

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

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

借助 Helicon Ape,您可以像这样在同一个地图文件上使用反向地图:

RewriteEngine On
RewriteMap map_rev txt_rev:my_map_file.txt [NC]
RewriteCond ${map_rev:|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:|NOT_FOUND} (.*)
RewriteCond %1 !NOT_FOUND 
RewriteRule (.+) %1 [R]