pix*_*ine 3 .htaccess mod-rewrite
我希望mod_rewrite将所有请求重定向到非现有文件和文件夹,并将所有对主文件夹("root")的请求重定向到子文件夹.所以我把它设置成这样:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteCond %{REQUEST_FILENAME} !-d [NC,OR]
RewriteCond %{REQUEST_URI} / [NC]
RewriteRule ^(.*)$ /my/subfolder/$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)
不幸的是,它不起作用:如果我请求example.com/public/它重定向到我的处理脚本(所以重定向到我的/ subfolder/index.php?app = public)虽然文件夹"public"存在.请注意,请求domain.com/正确重定向到我的/ subfolder/index.php
这是为什么?
它不起作用,因为你的最后一个条件不仅匹配根,而是匹配其中的任何uri,这基本上就是一切.请尝试以下方法:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ /my/subfolder/$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)
请注意,不需要[NC],因为您没有尝试匹配任何字母表,因此不需要"无案例".
希望能帮助到你.
归档时间: |
|
查看次数: |
2643 次 |
最近记录: |