如果存在相同的文件夹,隐藏页面扩展名也会调用文件而不是文件夹


Hide page extension also call file instead of folder if same folder exist

现在我使用.htaccess文件隐藏页面扩展名。但当存在相同的文件夹名称时,我会遇到问题。就像我有一个名为about.html的页面,所以在url中它被称为http://sitename.com/about

但也有一个文件夹的名字是关于。所以在这种情况下,浏览器显示的文件夹不是about.html。

任何人都请帮我解决这个问题。

我在.htaccess文件中使用此代码

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^.]+)$ $1.html [NC,L]

您需要关闭目录斜杠来重写文件:

DirectorySlash off
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.html [NC,L]

关闭目录斜线将允许您访问尾部带有斜杠的目录/about/。和
/没有尾部斜杠的about将被重写为/about.html

我找到了解决方案。现在我使用这个代码

重写结束%{SCRIPT_FILENAME}-d

重写规则^([^.]+)$$1.html[NC,L]

重写结束%{SCRIPT_FILENAME}-d

重写规则^([^.]+)$index.html[NC,L]