我最近在服务器上上传了一个 PHP 主题。除了我的主页之外,它在任何其他部分都运行良好。例如,访问www.mywebsite.com/anything
主题时可以正常工作,但在主页上www.mywebsite.com
显示服务器的默认页面。
我正在使用 htacess RewriteEngine,它在某些情况下可以工作,但可能不正确。这是我目前所得到的:
<IfModule mod_rewrite.c>
RewriteEngine on
Options -Multiviews
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteRule ^(.*)?$ index.php?a=$1 [QSA,NC,L]
ErrorDocument 404 /new/404.php
</IfModule>
这使得我的主页可以工作,但标题没有显示,标题上显示“页面未找到”。页面可以工作,我所做的更改只是上面的两个 RewriteCond。它们已设置为,{REQUEST_FILENAME}
但这导致我的网站主页无法工作并显示默认服务器页面。
答案1
您的问题没有明确指出是否命中了正确的 PHP 文件。假设您的语法.htaccess
正确:
您RewriteRule
正在表明您index.php
是任何不存在的文件和目录的接收者,并且路径(我相信)被发送到$_GET['a']
......您需要自行index.php
检测并适当处理。
ErrorDocument
是一个单独的机制,并且再次,如果404.php
被击中,则由它来决定,例如header('HTTP/1.1 404 File Not Found')
,然后输出指示未找到页面的 HTML。