-1

我得到这样的 url ' http://mysite.pl/public?products,BEER/7,shop_shelf ' 我想把它改写成http://mysite.pl/index.php?product=BEER/7 in 。访问。

有任何想法吗 ?

4

2 回答 2

1

问号后的所有内容都是查询字符串,RewriteRule指令仅适用于替换字符串。你应该RewriteCond改用。

RewriteEngine On
RewriteCond %{QUERY_STRING} ^products,([-/_\.a-z0-9]*?),[-/_\.a-z0-9]+$ [NC] 
RewriteRule ^public$ index.php?product=%1 [NC,L]
于 2013-08-14T13:24:41.163 回答
0
'RewriteRule ^products,([a-zA-Z\.\+a-z0-9-_/]*),([a-zA-Z\.\+a-z0-9-]+))$ index.php?product=$1 [L,B,NC]

我可以在那里看到几个问题,你不是在检查“public”吗?一开始,我认为您也混淆了字母表。

RewriteRule ^public\?products,([a-zA-Z\.\+-_]+)\/([0-9]+),([a-zA-Z-_]+)$

尝试类似的东西,虽然我只是快速编写它而没有测试。它应该检查一个以 开头的字符串,public?products,后跟一个由 1 个或多个字符组成的子模式[a-zA-Z\.\+-_](这将$1在您的目标中),然后/是另一个由一个或多个字符组成的子模式[0-9]$2),,最后是另一个包含字符的子模式[a-zA-Z-_]$3如果需要)

就像我说的那样,我还没有测试过,所以就从它开始玩吧

于 2013-08-14T13:13:47.180 回答