.htaccess 当链接输入错误时,不使用CSS显示网站

.htaccess 当链接输入错误时,不使用CSS显示网站,.htaccess,redirect,.htaccess,Redirect,我正在为自己制作一个网站,但有一个小问题,如果你键入一个URL并以/或/(任何字符)结尾,那么你会得到一个没有CSS的页面 例如: http://www.acnorris.uk/contact works fine /contact/ displays without CSS/JS/images /contact/anythinghere

我正在为自己制作一个网站,但有一个小问题,如果你键入一个URL并以/或/(任何字符)结尾,那么你会得到一个没有CSS的页面

例如:

http://www.acnorris.uk/contact                     works fine
/contact/                                         displays without CSS/JS/images
/contact/anythinghere                            displays without CSS/JS/images
我的404页面也是如此

http://www.acnorris.uk/pretendlink                   shows 404 fine
/pretendlink/                                        no CSS/JS/images
/pretendlink/somethingelse                           no CSS/JS/images
我花了很多时间来编辑htaccess文件(它托管在plesk服务器上),但是 我无法解决这个问题。希望有人能提供一个解决方案,这样即使输入错误的链接
使用CSS显示。

您可能缺少CSS,因为浏览器正在不同的文件夹中搜索。例如,如果浏览器请求
/contact
页面,并找到
,那么它将请求
/contact.css
。相反,如果请求是针对
/contact/
,它将请求
/contact/contact.css

此行为也可能受到
HTML元素的影响


我不知道您在服务器端使用什么来将URL转换为文件名,但我将在下面给出一个详细的示例

总体结构 一种常见的解决方案是将与您的联系人页面等相关的所有文件放在同一文件夹中:

  • /contact/index.php
  • /contact/contact.css
  • /contact/contact.js
从索引页面,您可以使用相对URL(
src=contact.js
href=contact.css
)引用文件。任何站点范围的文件都应放在web根目录或web根目录的子文件夹中,并使用绝对URL(
/site.js
/js/site.js
)进行引用。您可能应该选择更好的文件名

索引文件 为了让Apache加载索引文件,需要使用指定一组要搜索的文件名。服务器将尝试按指定的顺序加载文件:

    DirectoryIndex index.php index.html

谢谢大家的建议

我发现问题在于我设置了相对链接而不是绝对链接,这解决了问题。新手错误:(


Adam

我认为我们也需要获取您的htaccess文件。我敢打赌这就是您的问题所在。此外,您是否使用MVC框架(Cake、Yii等)如果你使用PHP,你可能想考虑基于变量的绝对路径调用这些文件,就像WordPress使用它的SITEYURL函数一样。例如:作为一个一般的规则,你应该使用属性的引用来帮助防止XSS。@ ARToFCOD:在我的例子中ABO。ve,引号是不必要的。如果您在更广泛的上下文中引用attibute引号,例如根据用户输入以编程方式生成HTML,那么仅仅添加引号是不够的。引号有助于通过字符串化属性来防止XSS,从而使任何注入的代码都变得无用。即使页面已加载并显示,代码仍然可以注入,因此使用引号通常是一个好主意。
    DirectorySlash Off