(我很难想出一个好的问题描述,对不起!)
我有一个404.php页面设置,它也在我的.htaccess文件中定义。
问题:
如果你输入https://www.mentat.com.au/abc(其中***abc***是一个不存在的目录),它会给你正确的404.php页面。
然而,如果你输入https://www.mentat.com.au/abc/(带 * 尾部斜杠 *),它会给出404.php页面,但没有下载的css文件。
下面是我的.htaccess文件:
#### You need this system flag ####
RewriteEngine On
#### Force HTTPs ####
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#### Moving all page files with same name, but extentions from .asp to .php ####
RewriteCond %{HTTP_HOST} ^mentat\.com\.au$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mentat\.com\.au$
RewriteRule ^(.*)\.asp$ "https\:\/\/www\.mentat\.com\.au\/$1\.php" [R=301,L]
#### Assign 404 error page ####
<IfModule mod_rewrite.c>
ErrorDocument 404 /404.php
</IfModule>
字符串
我的问题:
那么,为什么我的404.php页面后面的斜杠会断开呢?
感谢您提供有关如何解决此问题的任何建议。
干杯SunnyOz
1条答案
按热度按时间368yc8dk1#
答案:
我在这里找到了答案:404 error handling with htaccess and css
由于404页面可以从任何目录显示,因此您需要为任何外部页面资产(如CSS文件,图像,JavaScript文件等)使用绝对路径。
因此,任何相对路径都需要更改为绝对路径。(我在所有资源和链接等之前添加了前面的斜杠(/)。)
注意:我仍然不明白为什么404资产 * 正确地出现 *(在我修复文件之前)的URL * 没有尾随斜杠 *。在我看来,我会认为两个URL(有或没有尾随斜杠)都会有相同的丢失资产的问题。
如果有人能提供为什么没有尾随斜杠的URL最初没有工作的原因,请给我一个评论!
(* 我想知道这是否与URL没有结尾斜杠的事实有关-然后系统不会将其识别为实际目录?所以它假设它仍然在根目录中?因此相对路径确实会选择资产?* )