【发布时间】:2022-01-20 16:00:27
【问题描述】:
我正在使用 w3schools 此处显示的包含方法构建一个 html 站点
https://www.w3schools.com/howto/howto_html_include.asp
网站基本上如下所示
<div w3-include-html="navigation.html"></div>
<body>
</body>
<div w3-include-html="footer.html"></div>
当您在网站的正确页面上时效果很好,但如果我直接导航到 navigation.html,它会显示一个看起来很糟糕且无用的页面。
我尝试使用带有以下内容的 .htaccess 文件对其进行重定向,以便用户可以优雅地登陆一个页面,该页面说对不起,这不存在,点击这里等等等等......
重定向 /navigation.html /page-not-found.html
然而,这最终导致我所有真实页面上的导航栏在 page-does-not-exist.html 页面中显示 html。
有没有一种简单的方法可以使用 .htaccess 将直接输入 www.example.com/navigation.html 的用户重定向到 www.example.com/page-not-found.html,同时仍然允许我的其他页面正常“包含”它?
感谢您提供的任何帮助。
【问题讨论】:
-
简短的回答是:
You can't do this。如果您使用 htaccess 重定向文件,那么您最终会遇到相同的情况。如果您不希望该文件对客户端可见,您可以将其保留在文档根文件夹之外并从那里包含它。 -
我想这么多!谢谢....您能否详细说明一下或将我引导到显示如何从根目录以外的文件夹中包含的页面?你的意思是像服务器上的根目录一样,或者只是另一个文件夹通常可以工作?我基本上只是不希望用户能够输入 www.example.com/navigation.html 并看到它产生的看起来很奇怪的页面。
-
"如何从根目录以外的文件夹中包含?" - 您无法使用当前方法 (JavaScript) 执行此操作 - 因为您的脚本也会被阻止。只有在使用服务器端包含(例如 PHP 等)时才能这样做
标签: javascript html ajax .htaccess mod-rewrite