Apache htaccess重写共享相同名称的文件和文件夹

时间:2014-12-30 19:17:47

标签: php apache .htaccess

我有以下API端点:

/api/project
/api/project/start
/api/project/end

这些端点由文件结构支持,如下所示:

/api/project.php
/api/project/start.php
/api/project/end.php

我目前正在使用.htaccess使.php扩展名对API用户可选。

我注意到,如果我在没有/api/project扩展名的情况下点击.php,我会被带到Apache上的project文件夹而不是project.php文件。

无论如何都要在.htaccess文件中或通过其他方法对此进行说明吗?

我当前的.htaccess重写规则

Options -Multiviews

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

1 个答案:

答案 0 :(得分:0)

我能够通过将DirectorySlash Off添加到我的.htaccess文件来解决此问题。

如果存在该名称的目录,Apache会自动在URL末尾添加一个尾部斜杠。

更新.htaccess文件并重新启动服务器后,您需要清除浏览器缓存(因为如果以前的请求被自动重定向,大多数浏览器会在请求结尾添加尾部斜杠)。