我有两个带有以下树的Yii应用程序:
(app v2.0)
/
/.htaccess
/index.php
(app v1.0)
/v1.0/
/v1.0/.htaccess
/v1.0/index.php
Root(v2.0).htaccess是:
RewriteEngine On
RewriteCond %{REQUEST_URI} \.svn
RewriteRule .* - [F,L]
RewriteCond %{REQUEST_URI} \.git
RewriteRule .* - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php?v2.0=%{REQUEST_URI}/$1 [L,QSA]
v1.0 .htaccess是:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php/?v1.0=%{REQUEST_URI}&file=%{REQUEST_FILENAME}/$1 [L,QSA]
我们的想法是将/site/index
之类的请求转到/index.php
和/v1.0/site/index
转到/v1.0/index.php
。
我的结果很奇怪:
/ goes to /index.php [OK]
/site/index goes to /index.php [OK]
/v1.0/ goes to /v1.0/index.php [OK]
/v1.0/site/index goes to /index.php [??? - NOT OK]
/v1.0/site/index
通过/v1.0/.htaccess
传递(使用参数跟踪)并直接转到/index.php
。
[服务器正在运行CentOS 6.5]
甚至没有设置RewriteBase
解决了我的问题。
$ _GET参数v1.0
,v2.0
和file
仅用于跟踪应用程序中的请求。
有什么猜测吗?