我有一个托管在 Apache Web 服务器上的网站,并且有一些与某些目录具有相同名称(不带扩展名)的文件。
我还在 .htaccess 文件中删除了扩展名:
#Remove .php from filenames
Options -MultiViews
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
例如,我有一个名为 test.php 的文件和一个名为 test 的目录。当我去 http://redxtech.ca/test ,它会在 URL 中添加斜杠并转到目录 test/的内容。
我知道只需在文件名末尾输入 .php 就可以解决我的问题,但我希望不存在 .php (或任何扩展名),而只是不带 .php 的文件名使用扩展名转到文件,使用斜杠转到目录。
有什么办法可以做到这一点吗?
最佳答案
经过对这个网站的大量考察,我找到了答案。
# Manually re-route test/ requests to test
DirectorySlash Off
RewriteCond %{REQUEST_FILENAME} test/$
RewriteRule ^(.*)/$ $1
# Hide extension
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
唯一的事情是我必须为每个我希望具有此条件的目录单独执行此操作。
已找到答案 here .
关于php - 如何拥有同名的文件和目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37860350/