好吧,也许是一个非常愚蠢的问题,但我找不到谷歌的答案。
我正在手工编写我的网站。如何让index.html从url中消失?我在HTML中使用了一段代码吗?我是否必须更改文件中的href?
希望你们能帮忙!
编辑:我用.htaccess文件尝试过这个
RewriteEngine On
RewriteRule ^index\.html$ / [R=301,L]
RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]
它确实有效,但我的所有链接都不再起作用了。我发现我必须从我的文档中的href中删除所有index.html。但那将是很多工作。是否还有.htaccess的其他代码只隐藏index.html?
在Html中这样做的简单方法:
(在我的例子中是一个简单的双语站点)
如果您的链接如下所示:
<a href="index.html">Homepage</a>
您应该将其更改为:
<a href="/">Homepage</a>
如果尝试链接到目录中的另一个文件夹,就像我的示例:
<a href="en/index.html">English language</a>
您应该将其更改为:
<a href="en">English language</a>
请注意,“/”会返回到您的根目录并自动选择index.html,这就是我使用“en”作为英语网站的原因,因为在这种情况下文件夹的名称是“en”。您还应该确保在英语语言文件夹中有index.html,而不是index-en.html。
Apache有.htaccess文件和mod_rewrite,在.htaccess文件中,设置:
DirectoryIndex index.html
您也可以在Apache site config files中进行设置
您可以指定文件名列表,因此如果找不到第一个文件名,则会移动到下一个文件名。
IIS有.config files
mod_rewrite模块负责所有的rewriteEngine。检查服务器是否存在模块并启用。
您需要在站点的根目录中创建一个名为“.htaccess”的文件,其中包含以下代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
然后确保您网站上的所有链接最后都不包含“.html”,例如:
<a href="/Home.html">
应替换为:
<a href="/Home">
希望这可以帮助!
如果你没有找到.htaccess,你只需要使用你的文本编辑器创建一个新文件,就像你使用任何其他html或css文件一样,但保存为简单的'.htaccess'
并将其保存到根目录中,因此与index.html文件所在的文件夹相同。
我认为这是在部署网站时在IIS中配置的,我不确定,但我确定你可以指定一个起点,当你输入UL时你的URL会使用,这意味着Index.html页。
对不起,我在这里不太有帮助,希望它会指出你正确的方向。
通常这些东西,比如Apache或IIS已经设置好了,当你把你的URL放入时,它会首先查找Index.html
,Index.php
。
将发往您主页的链接更改为网站地址。你可能有:
<a href="index.html">Link Here</a>
改为:
<a href="http://www.domain.com">Link</a>
只需不要在浏览器中输入index.html,也不要这样做。
在缺少文件部分的情况下,您可以在Web服务器上设置“默认文档”(无论您使用哪个)来提供“index.html”。这样,有人去http://www.mysite.com将服务http://www.mysite.com/index.html