.htaccess重定向到index.php - 404错误无法正常工作

时间:2014-03-14 20:49:20

标签: php apache .htaccess mod-rewrite rewrite

我正在尝试为我的网站设置.htaccess。如果输入了错误的url地址,我想将用户重定向到index.php。但是,当我输入错误的URL它不会将我重定向到index.php,但它显示我的错误(尝试使用ErrorDocument时遇到Not Found 404错误)。

我的.htaccess文件

Options -Indexes
DirectoryIndex index.php

<IFModule mod_rewrite.c>
RewriteEngine On
RewriteBase /rop/
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([A-Za-z0-9-\/&_]+)/?$ index.php?etc=$1 [L]
</IfModule>

<Files config.php>
deny from all
</Files>

ErrorDocument 404 /index.php
ErrorDocument 403 /rop/pages/error/403.html

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

这是由于您的重写规则和ErrorDocument指令相互踩踏。

您的重写规则是:

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([A-Za-z0-9-\/&_]+)/?$ index.php?etc=$1 [L]

本质上意味着:

如果请求不是针对文件/目录(未找到),请转发至index.php?etc=<uri>

现在你也有ErrorDocument这样的指令:

 ErrorDocument 404 /index.php

如果找不到内容,请转到/index.php

PS:你的正则表达式在重写规则中也是错误的。

答案 1 :(得分:0)

你使用本地主机吗?这对我有用。

gen_tcp:send()