php - htaccess多参数重写规则

标签 php regex apache .htaccess mod-rewrite

我知道这个问题被过度询问,但找不到任何适合我的问题的内容。

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

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

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

页面参数是必需的,其他两个不是。 我没有任何东西适合我...任何帮助将不胜感激

非常感谢!

最佳答案

最好有单独的清洁规则。将此代码放入您的 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]

关于php - htaccess多参数重写规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20468460/

相关文章:

php - 将 laravel 对象转换为数组

php - 有数据时从 php/mysqli 查询中获取不到结果行/字段

php - mysqli_connect() : (HY000/2002): Can't connect to local MySQL server through socket

apache - Tomcat 多个本地主机实例

apache - 在Apache中设置错误日志文件名以包括当前日期

在 php INI 中找不到 PHP session upload_progress

php - 开关返回错误值

Python 正则表达式 - 排除某个匹配项

带有 regexec() 的 C++ 正则表达式不匹配

javascript - jquery正则表达式验证错误