问题描述
我有以下 .htaccess
,它在我的一些网站上运行良好。但是,我已将其上传到另一个网站(在同一主机上,不同域上),现在默认为错误 404 页面;显示正确。
示例网址:https://www.example.ca/resources-and-links/documents/
.htaccess
首先检查是否存在带有第一个子目录的实际 .PHP
文件,在示例 resources-and-links.PHP
中。如果确实存在,它将提供该页面并将其余的子目录分解为提供的查询字符串。
如果 resources-and-link.PHP
不存在,它会将它定向到 content.PHP
以根据数据库中的页面检查它,并在 url 与数据库中的其中之一匹配时提供它。如果不是,content.PHP
页面会显示自定义错误 404 页面。
这适用于上述网站 https://sub.example.com
的子域,该子域运行我构建的 cms 系统,但不是根域,如前所述;而是显示 ErrorDocument
。同样,我在许多其他网站上都使用了相同的 .htaccess
,没有出现任何问题。
我使用 PHP 来证明 mod_rewrite
可用,那么有什么原因使它在根域上不起作用?为什么它直接跳到 ErrorDocument
并提供 /404.PHP
?
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/([^/]*)
RewriteCond %{DOCUMENT_ROOT}/%1.PHP -f
RewriteRule ^([^/]*)(/([^/]*))?(/([^/]*))?(/([^/]*))?(/([^/]*)) /$1.PHP?ax=$3&do=$5&third=$7&fourth=$9 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z]*)/(.*)$ /content.PHP?url=$1/$2 [L]
Options +FollowSymLinks
ErrorDocument 404 /404.PHP
</IfModule>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)