如何隐藏我的.html文件,例如当我访问www.mysite.com时,它会重定向到www.mysite.com/index.html,但它隐藏了/\ index.html,因此它保持为www.mysite .com但实际上是www.mysite.com/index.html。 我真的不知道如何解释,但如果你了解我,请你帮忙,谢谢。
答案 0 :(得分:3)
.htaccess
文件是一个简单的ASCII文件,您可以使用文本编辑器(如Notepad或TextMate)创建该文件。它提供了一种基于每个目录进行配置更改的方法。
RewriteRule ^([^\.]+)$ $1.html [NC,L]
来源 - How to remove .php, .html, .htm extensions with .htaccess
答案 1 :(得分:3)
请在.htaccess文件中写下以下代码。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} \.html$
RewriteRule ^(.*)\.html$ $1 [R=301,L]
.html将使用上述代码从您的网址中删除。
假设您的联系我们网页网址为www.mysite.com/contact.html
,因此使用上面的代码代替www.mysite.com/contact
。
答案 2 :(得分:0)
试试这个,这里我们设置目录索引,所以我们不必在每个调用中都提到index.html。并重写每个没有扩展名的HTML。
DirectoryIndex index.html
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^([\w-]+)$ $1.html [L]
答案 3 :(得分:0)
此方法不使用apache。它只是重组代码。
您还可以尝试使用为路径创建不同的目录。 例如,对于联系页面,您将在项目的根目录中具有文件夹名称联系人。在该文件夹中,将contact.html作为index.html。 此重组可以帮助您按路径拆分代码。
联系页面的链接是www.mysite.com/contact(浏览器将www.mysite.com/contact/index.html)。
答案 4 :(得分:0)
如果您要求仅在索引页面中编辑客户端的URL文本。您可以使用this answer:
中的代码通过HTML文件上的JavaScript替换路径名history.replaceState('data to be passed', 'Title of the page', 'theNameWithoutTheHTML');
应为每个页面的每个.js更改名称,或者您可以使用更通用的脚本并重复使用它:
history.replaceState('data to be passed', 'Title of the page', location.pathname.slice(0, -5)); //This will replace it with the same path, removing the ".html" at the end (take care if the extension is different sized)
在这种情况下,您正在重定向到.html文件,当用户重新加载页面时应该没有任何问题(因为它会尝试加载没有.html的页面)。