Mod-rewrite尾部斜杠和额外的$ GET

时间:2017-02-16 21:57:21

标签: regex apache mod-rewrite

我需要一些mod_rewrite语法的帮助,目前我有

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1

当用户访问mydomain.com/testpage时显示mydomain.com/index.php?page=testpage。

我还想做更多的事情,但玩其他的例子却无法做到这一点。

首先,我想让mydomain.com/testpage/像mydomain.com/testpage一样工作,因为尾部斜杠对功能没有影响。

其次,我想添加第二个可能并不总是存在的变量,以便mydomain.com/testpage/testvar显示mydomain.com/index.php?page=testpage&var=testvar

非常感谢任何帮助。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您需要一个额外的规则并使尾随斜杠可选:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

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

RewriteRule ^([\w-]+)/([\w-]+)/?$ index.php?page=$1&var=$2 [L,QSA]