好吧,也许是一个非常愚蠢的问题,但我找不到谷歌的答案。
我正在手工编写我的网站。如何让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?
答案 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.html
,Index.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 url和Apache .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>
答案 7 :(得分:-3)
只需不要在浏览器中输入index.html,也不要在其中做广告。
您可以在没有文件部分的情况下在Web服务器上设置“默认文档”(无论您使用哪个)来提供“index.html”。这样,有人会前往http://www.mysite.com http://www.mysite.com/index.html