我想将所有流向任何.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错误。
我究竟做错了什么?
答案 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]