指向网络服务器加载.html页面而不是子目录索引

时间:2019-02-20 01:48:57

标签: html apache .htaccess

所以我现在已经搜索了几个小时,却找不到我问题的答案。

因此,我有一个网站想要删除页面扩展名,例如.html / .php等。,我发现我可以在.htaccess文件中包含以下代码。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html

我现在添加了该代码,它非常适合从页面中删除.html。但是现在我遇到了一个新问题。我的public_html文件夹的根目录中有一个页面和目录都名为“ guides”。现在,当我输入网址“ www.mydomain.com/guides”时,将显示指南目录的索引,而不是要显示的guides.html页面。

我想知道解决此问题的最佳方法是什么,使我的服务器首先查找网页,而不显示指南目录索引。

我一直在查看RewriteRule的内容,但似乎所有的都是wordpress内容,并且不适用于我的非wordpress网站。

谢谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

最好的解决方案是将目录或文件的名称更改为其他名称。 RewriteRule无法将目录请求重写为文件,因为目录请求首先由mod-dir(目录模块)处理。

如果您不想更改名称,则可以使用htaccess中的以下行在服务器上关闭DirectorySlash

 DirectorySlash off

https://httpd.apache.org/docs/2.4/mod/mod_dir.html#directoryslash