目前我的.htaccess
看起来像这样:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [QSA]
所有URI都传递给PHP脚本,然后解析它并返回内容。
现在我想实现一个版本控制系统,根据所调用的版本,会有不同的脚本处理URI。
那是:
/v1/countries/es/users
,我想将URI /countries/es/users
传递给脚本v1.php
/v2/users/314/settings
,那么我希望将URI /users/314/settings
传递给脚本v2.php
我尝试过像
这样的事情RewriteRule ^/?v(\d)/.*$ v$1.php [QSA]
这会将执行发送到特定于版本的脚本,但是我仍然希望在传递给脚本时删除URI的/v1/
初始部分,即我希望脚本接收到没有初始版本部分的URI 。
我怎样才能做到这一点?
答案 0 :(得分:0)
在apache document: Apache mod_rewrite Introduction明确解释。
您可以将其作为参数传递,并使用$_GET['route']
获取没有第一个版本部分的URI部分:
RewriteRule ^/v(\d)/(.*)$ v$1.php?param1=$2 [QSA,L]
RewriteRule ^/v(\d)/(.*)/(.*)$ v$1.php?param1=$2¶m2=$3 [QSA,L]