【发布时间】:2013-10-17 07:14:34
【问题描述】:
这应该很简单,但我无法解决问题。我敢肯定这对某人来说是秒回答。
我在我的 htaccess 文件中进行了如下重写:
RewriteCond %{THE_REQUEST} \ /product\.php\?categoryfilename=([A-Za-z0-9-%.]+)&category=([A-Za-z0-9-%.]+)&id=([A-Za-z0-9-]+)
RewriteRule ^ /%3-P.html? [R=301,L]
重写工作 如果我输入:
www.mysite.co.uk/product.php?categoryfilename=all-products.php&category=All%20products&id=MY-PRODUCT
它重定向到:
http://www.mysite.co.uk/MY-PRODUCT-P.html
那么我有一个简单的重定向:
重定向 301 /MY-PRODUCT-P.html http://www.mysite.co.uk/MY-PRODUCT-123-P.html?
这应该是一个静态重定向,但它附加了一个讨厌的 ?到结果结束。
如果我删除 ?从重定向的末尾开始,我在第一个 rewriterule 中的原始混乱路径名中附加了 php 变量
非常感谢
【问题讨论】:
-
请使用正确的术语。您正在从 /name-P.html 重写为 /product.php?var=val&var=val&var=val 等。客户看到的“外部世界”静态 URI 是 /name-P.html,而您的 PHP 的动态 URI代码看到是/product.php?...
标签: regex apache .htaccess mod-rewrite redirect