从url中删除index.html

时间:2014-03-18 13:34:28

标签: html url indexing

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

我正在手工编写我的网站。如何让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?

8 个答案:

答案 0 :(得分: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>

请注意&#34; /&#34;返回到您的根目录并自动选择index.html,这就是我使用&#34; en&#34;对于英语网站,因为在这种情况下文件夹的名称是&#34; en&#34;。您还应该确保在英语语言文件夹中有index.html,而不是index-en.html。

答案 1 :(得分:1)

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

DirectoryIndex index.html

您也可以在Apache site config files

中进行设置

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

IIS有.config files

答案 2 :(得分:0)

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

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

通常这些内容(如Apache或IIS)已经设置好了,当您将URL放入时,它首先会查找Index.htmlIndex.php

答案 3 :(得分:0)

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

答案 4 :(得分: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文件的文件夹。

答案 5 :(得分:0)

很棒的SEO创意!这类似于nginx redirect loop, remove index.php from urlApache .htaccess to hide both .php and .html extentions以及mod_rewrite not working htaccess -在这里,对于Apache的mod_rewrite和nginx ngx_http_rewrite来说,这取决于 external之间的差异。 内部 URL —为了使从/index.html/的重定向有效,但不会导致重定向循环在实际服务index.html时,您必须确保仅对 external index.html请求发出重定向,而不对 internal 发出重定向em>个;这只能通过查看实际的request_uri来实现。


这是nginx ngx_mod_rewrite的代码:

index   index.html  index.txt;
if ($request_uri ~ "^(.*/)index\.(html|txt)$") {    return  301 $1; }

在Apache的mod_rewrite上,它将类似于以下内容:

RewriteEngine   on
RewriteCond     %{REQUEST_URI}      ^.*/index\.html$
RewriteRule     ^(.*/)index.html$   $1      [R,L]

相关:

参考文献:

答案 6 :(得分:-1)

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

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

将其更改为:

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

Or try this

答案 7 :(得分:-3)

只需不要在浏览器中输入index.html,也不要在其中做广告。

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