从url中删除index.html

问题描述 投票:9回答:7

好吧,也许是一个非常愚蠢的问题,但我找不到谷歌的答案。

我正在手工编写我的网站。如何让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 url indexing
7个回答
21
投票

在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。


1
投票

Apache有.htaccess文件和mod_rewrite,在.htaccess文件中,设置:

DirectoryIndex index.html

您也可以在Apache site config files中进行设置

您可以指定文件名列表,因此如果找不到第一个文件名,则会移动到下一个文件名。

IIS有.config files


0
投票

mod_rewrite模块负责所有的rewriteEngine。检查服务器是否存在模块并启用。


0
投票

您需要在站点的根目录中创建一个名为“.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文件所在的文件夹相同。


0
投票

我认为这是在部署网站时在IIS中配置的,我不确定,但我确定你可以指定一个起点,当你输入UL时你的URL会使用,这意味着Index.html页。

对不起,我在这里不太有帮助,希望它会指出你正确的方向。

通常这些东西,比如Apache或IIS已经设置好了,当你把你的URL放入时,它会首先查找Index.htmlIndex.php


-1
投票

将发往您主页的链接更改为网站地址。你可能有:

<a href="index.html">Link Here</a>

改为:

<a href="http://www.domain.com">Link</a>

Or try this


-3
投票

只需不要在浏览器中输入index.html,也不要这样做。

在缺少文件部分的情况下,您可以在Web服务器上设置“默认文档”(无论您使用哪个)来提供“index.html”。这样,有人去http://www.mysite.com将服务http://www.mysite.com/index.html

© www.soinside.com 2019 - 2024. All rights reserved.