.htaccess htaccess不适用于子文件夹

.htaccess htaccess不适用于子文件夹,.htaccess,mod-rewrite,hyperlink,rewrite,subdirectory,.htaccess,Mod Rewrite,Hyperlink,Rewrite,Subdirectory,我想问为什么根文件夹中的.htaccess无法正常工作 .htaccess RewriteEngine On RewriteRule ^([a-zA-Z0-9]+)(/[a-zA-Z0-9/]+)?$ /$1\.php$2 [L] RewriteCond %{THE_REQUEST} ^GET\s/*pages/.*\.php [NC] RewriteRule ^([a-zA-Z0-9]+)(/[a-zA-Z0-9/]+)?$ /$1\.php$2 [L] RewriteCond %{T

我想问为什么根文件夹中的.htaccess无法正常工作

.htaccess

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9]+)(/[a-zA-Z0-9/]+)?$ /$1\.php$2 [L]

RewriteCond %{THE_REQUEST} ^GET\s/*pages/.*\.php [NC] 
RewriteRule ^([a-zA-Z0-9]+)(/[a-zA-Z0-9/]+)?$ /$1\.php$2 [L]

RewriteCond %{THE_REQUEST} ^GET\s/*debates/.*\.php [NC]
RewriteRule ^([a-zA-Z0-9]+)(/[a-zA-Z0-9/]+)?$ /$1\.php$2 [L]
/(主文件夹)中的链接隐藏了working.php,但在/pages/和/discussions/等子文件夹中,系统无法识别重写规则。我想在两个目录中都隐藏.php,就像它们隐藏在主文件夹中一样

我找到了解决办法

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ $1.php [L,QSA]

看起来这些规则都错了,他们什么都不会做:

RewriteCond %{THE_REQUEST} ^GET\s/*pages/.*\.php [NC] 
RewriteRule ^([a-zA-Z0-9]+)(/[a-zA-Z0-9/]+)?$ /$1\.php$2 [L]

RewriteCond %{THE_REQUEST} ^GET\s/*debates/.*\.php [NC]
RewriteRule ^([a-zA-Z0-9]+)(/[a-zA-Z0-9/]+)?$ /$1\.php$2 [L]
您只需更改对以下内容的访问权限:

RewriteEngine On 
RewriteRule ^pages/([a-zA-Z0-9]+)(/[a-zA-Z0-9/]+)?$ /pages/$1\.php$2 [L]
RewriteRule ^debates/([a-zA-Z0-9]+)(/[a-zA-Z0-9/]+)?$ /debates/$1\.php$2 [L]
RewriteRule ^([a-zA-Z0-9]+)(/[a-zA-Z0-9/]+)?$ /$1\.php$2 [L]

我认为您需要检查文件是否存在,或者是否使用
-f
。在此服务器上找不到请求的URL/9e6c561c1f.php。此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。文件存在!当我在url栏中将扩展名从空白更改为+.php时,它会打开。