.htaccess 删除扩展时目录的htaccess问题

.htaccess 删除扩展时目录的htaccess问题,.htaccess,redirect,file-extension,.htaccess,Redirect,File Extension,我使用htaccess从URL中删除.php扩展名。当有一个文件和一个目录同名时,问题就出现了。通过删除.php扩展名,服务器认为我试图访问一个目录,但拒绝了访问 范例 www.europe.com/意大利人.php变为www.europe.com/意大利人,但由于我有一个名为意大利人的文件夹,服务器拒绝访问,并说“禁止,您无权访问此服务器上的/意大利人” 这是我的访问权限 Options +FollowSymLinks -MultiViews # Turn mod_rewrite on Rew

我使用htaccess从URL中删除.php扩展名。当有一个文件和一个目录同名时,问题就出现了。通过删除.php扩展名,服务器认为我试图访问一个目录,但拒绝了访问

范例 www.europe.com/意大利人.php变为www.europe.com/意大利人,但由于我有一个名为意大利人的文件夹,服务器拒绝访问,并说“禁止,您无权访问此服务器上的/意大利人”

这是我的访问权限

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On


## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]
更新:最终的代码工作起来很有魅力

DirectorySlash Off

IndexOptions FancyIndexing
Options All
RewriteEngine on

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*[^.]+\.php
RewriteRule ^(([^/]+/)*[^.]+)\.php$ http://www.yoursite.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(([^/]+/)*[^/.]+)$ /$1.php [L] 

因此,输入(或链接到)并显示在浏览器地址栏中的URL是
www.europe.com/意大利人.php
,您正试图以静默方式将其映射到
www.europe.com/意大利人
?为什么,应该是另一种方式?在
www.europe.com/itali
上是否有处理请求的资源(脚本)?对文件夹
/italy
的访问在某处被阻止?在浏览器(使用我发布的htaccess配置)www.europe.com/italy上,问题是指向该页面的任何链接都被解释为指向该文件夹,因此我得到了www.europe.com/italy/禁止bla bla bla。。。谢谢谢谢你的帮助@faa!10个小时后我就能想出解决办法了!我编辑了原始帖子,以公开我的最终代码。