有人可以提出建议吗?我想让我的网站访问者的默认页面为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,包括错误。我试过问我的朋友谷歌,但这是他今天休息的日子!
答案 0 :(得分:2)
您的上一条规则将捕获无法映射到现有文件(RewriteCond %{REQUEST_FILENAME} !-f
)或现有目录(RewriteCond %{REQUEST_FILENAME} !-d
)的所有请求。这就是错误文档无法提供的原因。
答案 1 :(得分:1)
此文件中有2个不兼容的部分。选择一个 只保留第一行或仅保留文件的其余部分。但不是两个。
底部三行告诉web-server将所有不存在的页面指向index.php,而不是errordoc.php