htaccess多个参数重写规则

时间:2013-12-09 10:38:15

标签: php regex apache .htaccess mod-rewrite

我知道这个问题已被问到,但无法找到适合我的问题。

我正在创建一个网站,我的网址就像:

www.foo.com/ 或www.foo.com/index.php。 他们可以采用1,2或三个不同的参数,如

  

www.foo.com/index.php?page=Home&lang=en&article=1

我想要的是一个像

这样的网址
   www.foo.com/Home/

or www.foo.com/en/Home

or www.foo.com/Article/1

or www.foo.com/en/Article/1

页面参数是必需的,其他两个不是.. 我无法为我工作......任何帮助都会受到高度赞赏

非常感谢!

2 个答案:

答案 0 :(得分:7)

最好有单独的清洁规则。将此代码放在DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On

RewriteRule ^index\.php$ - [L]

RewriteRule ^([^/]+)/?$ /index.php?page=$1 [L,QSA]

RewriteRule ^([a-z]{2})/([^/]+)/?$ /index.php?page=$2&lang=$1 [L,QSA]

RewriteRule ^([a-z]{2})/([^/]+)/([0-9]+)/?$ /index.php?page=$2&lang=$1&article=$3 [L,QSA]

RewriteRule ^([^/]+)/([0-9]+)/?$ /index.php?page=$1&article=$2 [L,QSA]

答案 1 :(得分:1)

  

尝试这样的事情

RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)/([a-z0-9_-]+)\.html$           index.php?param1=$1&param2=$2&param3=$3