我的一位同事对通过.htaccess进行重定向感到困惑。
下面是示例格式:
1。) 原始网址:
https://en.example.com/product_info.php/1596-dry-out-standard-set-p-255?osCsid=50cqlnno30m6dcpb45kkooat36
重定向URL:
https://en.example.com/products/s-39-ms-1596-dry-out-standard-set
2。) 原始网址:
https://en.aersampling.com/product_info.php/bottle-ldpe-wide-mouth-p-120?osCsid=50cqlnno30m6dcpb45kkooat36
重定向URL:
https://en.aersampling.com/products/pn-385-bottle-ldpe-wide-mouth-1-liter
我不知道该怎么办,请告知。谢谢。
答案 0 :(得分:0)
这将不起作用-问题是原始URL中的信息与重定向URL不同。也就是说,您在一个数据中却没有另一个数据。所有重写规则真正可以做的就是与URL进行模式匹配,并移动数据以重新格式化URL。
您能做的最好的事情就是这样:
RewriteRule ^product_info.php/(.+)-p-[0-9]+ products/$1? [L]
但这会漏掉s-39-ms-1
和pn-385
之类的信息。
如果您实际上想屏蔽URL,以便“重定向” URL屏蔽原始URL,则情况相同。
“重定向” URL中存在的数据与原始URL中的数据不匹配,因此您真的无法使用纯htaccess做到这一点。
您可能能够做的是建立一种方法,用户通过该方法发送请求,然后您将其路由到一个特殊的脚本,该脚本分析URL,查询数据存储并构造新的存储,以提取缺失的信息。
如果您确实要重定向,这很容易,因为您只需要告诉脚本重定向用户即可,但是如果要屏蔽URL,则会变得混乱,因为您必须直接在页面上投放页面处理脚本。
希望这会有所帮助。