我正在尝试在.htaccess文件中设置一个非常简单的规则,以便重写这种网址:www.domain.com/index.php?page = test到:www.domain.com/test
我是mod_rewrite的新手,到目前为止,我来到了这个规则
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1
但它不起作用。
有任何帮助吗? 非常感谢
答案 0 :(得分:3)
几乎是对的,你忘记了page=
:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1
现在请注意,此规则恰恰相反:它会将/test
内部路径的请求内部重写为/index.php?page=test
而不会反之亦然。
答案 1 :(得分:0)
另一种方法是:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-_]+)/?$ index.php?page=$1.php [NC,L]
这也可以确保您的网址只能包含字母,数字,短划线和下划线。
Altough,在旁注中,我建议你为每个页面分别设置文件,包括header.php和footer.php ......