.htaccess 在不存在的目录中添加尾随斜杠将显示404页面,但不显示其CSS文件

6ss1mwsb  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(99)

(我很难想出一个好的问题描述,对不起!)
我有一个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

368yc8dk

368yc8dk1#

答案:

我在这里找到了答案:404 error handling with htaccess and css
由于404页面可以从任何目录显示,因此您需要为任何外部页面资产(如CSS文件,图像,JavaScript文件等)使用绝对路径。
因此,任何相对路径都需要更改为绝对路径。(我在所有资源和链接等之前添加了前面的斜杠(/)。)

注意:我仍然不明白为什么404资产 * 正确地出现 *(在我修复文件之前)的URL * 没有尾随斜杠 *。在我看来,我会认为两个URL(有或没有尾随斜杠)都会有相同的丢失资产的问题。

如果有人能提供为什么没有尾随斜杠的URL最初没有工作的原因,请给我一个评论!
(* 我想知道这是否与URL没有结尾斜杠的事实有关-然后系统不会将其识别为实际目录?所以它假设它仍然在根目录中?因此相对路径确实会选择资产?* )

相关问题