我终于能够在我的HTACCESS文件中成功创建一个规则,以隐藏子文件夹。
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/?([^/]+)/([^/]+)/([^.]+)\.php [NC]
RewriteRule ^ /%1/%3 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/?$ $1/Project/$2.php [NC,L]
第一条规则删除所有文件扩展名:php
第二条规则将隐藏文件夹" Project"来自网址
这两条规则都运作良好。
但是,当我尝试添加第三个规则时,为了隐藏另一个文件夹,它失败了。
第二个文件夹(Rolan)与" Project"位于同一位置。文件夹,所以我认为它应该只通过复制粘贴第二个规则:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/?([^/]+)/([^/]+)/([^.]+)\.php [NC]
RewriteRule ^ /%1/%3 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/?$ $1/Project/$2.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/?$ $1/Rolan/$2.php [NC,L]
(请注意:我从第二条规则的末尾删除了 [NC,L] ,并将其放在第三条规则的末尾。)
第一和第二条规则仍然有效。但是,对于第三条规则,我得到了一个" FILE NOT FOUND:404 "错误
更新
我修改了我的HTACCESS文件,如下所示:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/?([^/]+)/([^/]+)/([^.]+)\.php [NC]
RewriteRule ^ /%1/%3 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/?$ $1/Project/$2.php
RewriteRule ^gagoo/([^/]+)/([^/]+)/?$ $1/Rolan/$2.php [NC,L]
我添加了前缀" gagoo "第三条规则。
然后,在我的PHP代码中,我使用了URL: / gagoo / Rolan / file_name
但是,我仍然收到404错误。
我尝试删除" Rolan"来自网址: / gagoo / file_name
而且,仍然没有运气。
实际上,规则的运作方式," Rolan"不应该包含在URL中(毕竟,规则的目的是隐藏浏览器中显示的" Rolan"文件夹........与第二条规则相同隐藏" PHP"文件夹)