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

时间:2015-12-12 23:58:39

标签: php html .htaccess mod-rewrite

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

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

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

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

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d

RewriteRule ^([^.]+)$ $1.html [NC,L]

2 个答案:

答案 0 :(得分:0)

你需要关闭目录斜杠以重写你的文件:

DirectorySlash off
RewriteEngine On

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

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

答案 1 :(得分:0)

我找到解决方案。现在我正在使用此代码

RewriteCond%{SCRIPT_FILENAME}!-d

RewriteRule ^([^。] +)$ $ 1.html [NC,L]

RewriteCond%{SCRIPT_FILENAME} -d

RewriteRule ^([^。] +)$ index.html [NC,L]