htaccess RewriteRule似乎是正确但不起作用

时间:2011-05-04 02:09:21

标签: .htaccess rewrite

我想将所有流向任何.php文件的流量重定向到index.php。

例如:
domain.com/test.php
domain.com/test/test.php
..应该去domain.com/index.php。同理:
www.domain.com/test.php
www.domain.com/test/test.php
..应该访问www.domain.com/index.php。

我添加了以下规则:

    RewriteRule(。 .com)(/。)?/(。*。php)$ 1 / index.php

根据在线正则表达式测试人员应该给我正确的结果,但是当我在实际的htaccess上使用它时,规则似乎被忽略,而是给出404错误。

我究竟做错了什么?

2 个答案:

答案 0 :(得分:0)

RewriteRule在其第一个参数中与主机不匹配。请尝试以下方法:

RewriteEngine on

RewriteCond %{REQUEST_URI} index.php$
RewriteCond %{QUERY_STRING} arg=something
RewriteRule \.php$ /index.php? [R]

RewriteCond %{REQUEST_URI} !index\.php$
RewriteRule \.php$ /index.php? [R]

希望有所帮助。

答案 1 :(得分:0)

试试这段代码:

Options +FollowSymlinks -MultiViews
RewriteEngine on

# internally redirect all .php files to index.php
RewriteCond %{REQUEST_URI} !^/+index\.php [NC]
RewriteRule \.php$ /index.php? [L,NC]

# remove all query string from /index.php
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^index\.php$ /index.php? [L,R]