我试图从根目录重定向除图像,CSS,JavaScript以外的所有请求到我的index.php
,因此用户无法直接访问.php
等其他文件。.htaccess双查询字符串参数
我在.htaccess
文件下列规则在我的网站的根目录:
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_URI} !\.(css|js|png|jpe?g|gif|bmp|txt)$
RewriteRule ^(.*)$ index.php?url=$1 [NC,L,QSA]
在index.php文件,我写print_r($_SERVER)
当我[QUERY_STRING]
下访问例如/test
它显示的东西我不理解:
array(
..
[QUERY_STRING] => url=index.php&url=test
..
)
我的问题是:这是怎么回事?和这会影响网站的性能吗?
注意:如果我加了RewriteCond %{REQUEST_FILENAME} !-f
它只显示url=test
,但是这允许直接访问文件,所以删除了这个条件。
这表明您有两个重定向。 /测试index.php?url =测试和比index.php第二个你有。 – Cheery 2014-10-02 20:23:01
@Cheery是否可以只有一个重定向? – John 2014-10-02 20:24:41
您是否尝试添加不重定向index.php请求的条件?实际上,这是'!-f'的工作方式 - 它不会在文件存在时重定向。 – Cheery 2014-10-02 20:25:19