.htaccess不适用于$ _GET

时间:2012-06-03 21:40:15

标签: .htaccess

我在.htaccess文件中有一行:

RewriteRule ^(.*)$ index.php?page=$1 [NC,L]

和index.php中的一行:

$page = $_GET['page']; echo $page;

如果我转到http://www.example.com/test-page,则会返回index.php。

我发现修复它的唯一方法是:

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

如果我转到http://www.example.com/test-page/,它可以工作并输出测试页。

但是,我不希望该网页使用http://www.example.com/test-page/,我希望它使用http://www.example.com/test-page

如何解决这个问题,最好不要在内部重写中添加一个在网址末尾添加/的规则...?

1 个答案:

答案 0 :(得分:1)

尝试

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

或尝试这样的事情

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

这会将所有流量重定向到index.php。你可以使用e。 G。 $_SERVER[REQUEST_URI]来获取你的道路。