我为一个看似重复的问题道歉,但我看过的几十个问题实际上都没有同样的问题.
我有以下目录结构:
/.htaccess /index.PHP /subfolder/.htaccess /subfolder/index.PHP
我希望所有页面请求都由/index.PHP处理,除非请求启动/子文件夹,在这种情况下它应由/subfolder/index.PHP处理
>例如/ abc被重写为/index.PHP?u=abc
>例如/ subfolder / def被重写为/subfolder/index.PHP?u=def
我已经绕过这个圈子了,所以任何帮助都将受到大力赞赏.
编辑:忘了提问题!
子文件夹中的请求由根index.PHP处理,而不是子文件夹. (/ subfolder请求除外)
/.htaccess
Options -Indexes -MultiViews +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !^/admin RewriteRule ^(.*)$/index.PHP?u=$1 [NC,QSA]
/subfolder/.htaccess
RewriteBase /admin/ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$/admin/index.PHP?u=$1 [NC,QSA]
解决方法
你的root .htaccess是这样的:
Options -Indexes -MultiViews +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(?!admin/)(.+)$/index.PHP?u=$1 [NC,QSA,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^admin/(.+)$/admin/index.PHP?u=$1 [NC,L]
对于这个简单的要求,管理文件夹中不需要.htaccess.