我正在尝试为我的网站设置.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
感谢您的帮助。
答案 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()