htaccess 多参数重写规则

2021-12-21 00:00:00 regex php .htaccess apache mod-rewrite

我知道这个问题已经问过了,但找不到适合我的问题的任何内容.

I know this problem is over asked, but couldnt find anything fitting with my problem.

我目前正在创建一个网站,我的网址如下:

I'm currently creating a website, and my url are like :

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

www.foo.com/ or www.foo.com/index.php. They can take 1, 2 ,or three different parameters like

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

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

page参数是必填的,其他两个都不是..我不能为我工作...任何帮助将不胜感激

The page parameter is required, other two are not.. I cant have anything working for me... Any help would be greately appreciated

非常感谢!

推荐答案

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

Better to have separate clean rules. Put this code in your DOCUMENT_ROOT/.htaccess file:

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]

相关文章