Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess重写重定向到文件夹_.htaccess_Mod Rewrite_Directory - Fatal编程技术网

.htaccess重写重定向到文件夹

.htaccess重写重定向到文件夹,.htaccess,mod-rewrite,directory,.htaccess,Mod Rewrite,Directory,我试图从我的网页中删除.php扩展,但遇到了麻烦。目前,我的.htaccess文件中有: RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d RewriteRule ^(.*)$ - [L] RewriteCond %{DOCUMENT_ROOT}/$1.php -f RewriteRule ^((.*/)*[^./]+)/*$ $1.php [L] 在大多数情况下,这是可行的。但是,我的站点是结构化的,因此存在同名的文件夹和页面,例如example.

我试图从我的网页中删除.php扩展,但遇到了麻烦。目前,我的.htaccess文件中有:

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^(.*)$ - [L]

RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^((.*/)*[^./]+)/*$ $1.php [L]
在大多数情况下,这是可行的。但是,我的站点是结构化的,因此存在同名的文件夹和页面,例如example.com/page1.php

但是还有一个文件夹
page1
,这样example.com/page1/subpage.php就会像我想要的那样显示出来

此.htaccess代码正确地将example.com/page1/subpage指向.php文件,但example.com/page1尝试重定向到文件夹而不是page1.php,因此我得到一个错误,即禁止访问


我如何通过重写来解决这个问题,或者我应该以不同的方式组织/结构我的文件?

用此规则替换您的两条规则:

RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]

我最终改变了它,用page1/index.php代替了page1.php,这解决了我的问题,也让我的组织更干净。不过,谢谢!很高兴知道您的问题已经解决,但没有多少人能够更改他们的文件名。我会把我的答案留给这里的人