.htaccess将一个变量重新路由到index.php并保留$ _GET

时间:2013-03-15 14:11:00

标签: .htaccess variables mod-rewrite redirect reroute

我想通过index.php将所有请求重新路由一个变量并保留$ _GET。如果$ _GET存在,它总是在第一次斜杠之后。第一次斜杠后不是$ _GET的任何东西都应该被忽略。 像这样:

www.example.com/contact => www.example.com/index.php?page=contact
www.example.com/contact/ => www.example.com/index.php?page=contact
www.example.com/contact/?mod=add&id=4 => www.example.com/index.php?page=contact&mod=add&id=4
www.example.com/contact/ignore => www.example.com/index.php?page=contact

我对.htaccess并不是那么好,所以我做了这个(即使你确定它不是很好)

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

第一部分工作正常,但我不知道如何制作“忽略”部分。如果我尝试打开www.example.com/contact/ignore,我会收到404 Not Found。

1 个答案:

答案 0 :(得分:1)

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