2

有人可以建议吗?我希望我网站的访问者的默认页面是 index.php,对于所有不存在的页面,访问者应该看到 errordoc.php

所以我把它放在 .htaccess 中:

ErrorDocument 404 /errordoc.php

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^mysite\.org\.uk$ [NC]
RewriteRule ^(.*)$ http://mysite.org.uk/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

不幸的是,一切都将进入 index.php,包括错误。我试过问我的朋友谷歌,但今天是他的休息日!

4

2 回答 2

2

您的最后一条规则将捕获所有无法映射到现有文件 ( RewriteCond %{REQUEST_FILENAME} !-f) 或现有目录 ( RewriteCond %{REQUEST_FILENAME} !-d) 的请求。这就是不提供错误文档的原因。

于 2010-09-09T11:14:34.357 回答
1

您在此文件中有 2 个不兼容的部分。选择一个
只留下第一行或只留下文件的其余部分。但不是两者兼而有之。

下面三行告诉 web-server 将所有不存在的页面定向到 index.php,而不是 errordoc.php

于 2010-09-09T11:14:56.220 回答