将两个$ _GET变量拆分为路径

时间:2014-12-01 19:33:35

标签: php regex apache mod-rewrite

我正在尝试编写一个类似于:

的重写规则
www.sitename.com/products.php?p=product&c=category 

应该成为

www.sitename.com/product/category

我尝试过以下方法,但我的RegEx知识远非理想,以下内容不起作用

RewriteRule ^(.*)/(.*)$ products.php?p=$1&c=$2 [QSA,L]

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

尝试将(.*)替换为([^/]+)

答案 1 :(得分:1)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/([\w-]+)/?$ products.php?p=$1&c=$2 [QSA,L]

RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)\.html$ $1.php [NC,L]

答案 2 :(得分:0)

尝试这样的事情:

RewriteRule www.sitename.com/(.*)/(.*) $products.php?p=$1&c=$2 [QSA,L]

您可以在this site中测试重写规则。