如何在不重定向的情况下使用.htaccess为任何URL加载index.html?

时间:2013-08-23 19:49:24

标签: .htaccess http

我想使用.htaccess来获取这样的网址:

mydomain.com/hello-world

并让网络服务器加载index.html - 但保持hello-world网址完好无损。因此,我认为它不会是重定向。

理想情况下,这也不会产生404错误。

这可能吗?谢谢!

更新:我认为我实际上正在寻找的东西适用于任何URL,有或没有尾部斜杠。所以......

  • mydomain.com
  • mydomain.com/hello-world
  • mydomain.com/anything-else /

将ALL加载index.html,而不更改URL或给出404错误。谢谢你

3 个答案:

答案 0 :(得分:1)

根据Apache documentation,您只需要在DirectoryIndex文件中添加.htaccess指令。

此指令指向一个或多个文件,这些文件允许您在索引文件中具有冗余。这是一个例子:

DirectoryIndex index.php index.html index.htm

为了简单起见,您需要在名为“hello-world”的目录中使用此.htaccess文件,以便您的用户键入http://example.com/hello-world/(请注意尾部斜杠)以及其他规则(使用mod_rewrite模块),您可以重定向URL以向缺少URL的人添加尾部斜杠。

答案 1 :(得分:1)

另一种方法是使用Alias directive

假设您网站的代码位于/home/me/mysite,而您的服务器根位于/var/www

.htaccess文件将放在/var/www目录中,并包含以下指令:

Alias / /home/me/mysite/home.html

Alias /hello-world /home/me/mysite/hello-world.html

Alias /example /home/me/mysite/example.html

使用此方法,由于您的服务器根基本上是空的,因此键入/hello-wolrd/index.html的用户将获得404页面,这可能是预期的行为。

答案 2 :(得分:1)

感谢Sebleblanc的回答,以及该文档的链接,发现我正在寻找的是:

DirectoryIndex /index.html

FallbackResource /index.html

第一行解决了/ hello-world /,第二行解决了/ hello-world

谢谢你们!