【发布时间】:2012-09-24 23:08:47
【问题描述】:
我想问一下为什么我在根文件夹中的 .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]
/(主文件夹)中的链接带有工作 .php 隐藏,但在 /pages/ 和 /debates/ 等子文件夹中,系统无法识别重写规则。我想将 .php 隐藏在两个目录中,就像它们隐藏在主文件夹中一样。
我找到了解决方案!
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ $1.php [L,QSA]
【问题讨论】:
-
我认为你需要使用
!-f检查文件是否存在。
标签: .htaccess mod-rewrite hyperlink rewrite subdirectory