php - 如何拥有同名的文件和目录

标签 php apache .htaccess

我有一个托管在 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/

相关文章:

php - 运行 php3 本地主机

Apache - 如何获取 REMOTE_USER 变量

java - 从 Maven 构建一个 war 和可执行 jar

java - Apache Common Math 的分数到双倍

.htaccess - 将非 www 重定向到 https 的 www

regex - Apache RewriteRule - 无法匹配字符串的开头

wordpress - URL 重定向搞砸了(WordPress 和 Opencart)

php - 在 PHP 中启用 json_encode

php - WooCommerce REST API - 在没有太多请求的情况下获取所有有变化的产品

php - Web 服务器何时清除 PHP session 标识符?