我有以下网址:
http://example.com/de/cat1/?q=product1
http://example.com/en/cat2/?q=product3
...
我想将它们重命名如下。
第一个应该成为:http://example.com/de/cat1/product1
。第二个应该成为:http://example.com/en/cat2/product3
换句话说,我只想删除"?q ="。
我的.htaccess无法提供正确的结果。 目前看来如下:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ ?q=$1 [NC,L]
如果用户输入http://example.com/de/cat1/product1
,则会将其转换为:http://example.com/de/cat1/?q=/de/cat1/product1
。
我该如何解决?
答案 0 :(得分:3)
这是因为您在一个组中捕获整个uri并将其用作目标查询字符串。用以下内容替换您的RewriteRule:
RewriteRule ^(.+)/(.+)$ /$1?q=$2 [L]