我在我的Windows主机文件中定义了不同的主机,每个项目发布一个(rc1,rc2等...) 我想为每个版本创建一个vhost,以便我可以直接重定向到它的子目录,例如:
pp15.mv => http://localhost/mv/pp15/ .....
pp16.mv => http://localhost/mv/pp16/ .....
此外,我需要将主机ppX.mv重定向到自动登录网址,类似于 /mv_dbname.php?login=testlogin&mdp=202cb962ac59075b964b07152d234b70
所以,最后,我想在我的urlbar中输入这个:
http://pp15.mv
并被重定向到
http://pp15.mv/mv_dbname.php?login=testlogin&mdp=202cb962ac59075b964b07152d234b70
在我的虚拟主机文件中,我有类似的内容:
<VirtualHost *:80>
ServerName pp15.mv
DocumentRoot "D:\apache\htdocs\mv\pp15"
<Directory "D:\apache\htdocs\mv\pp15">
AllowOverride All
Allow from All
</Directory>
RewriteEngine On
RewriteRule ^/index.php /myvisitv3_dbname.php?login=johsmi&mdp=202cb962ac59075b964b07152d234b70 [R]
RewriteRule ^(/)?$ /myvisitv3_dbname.php?login=johsmi&mdp=202cb962ac59075b964b07152d234b70 [R]
</VirtualHost>
第一次重定向效果很好,但如果我尝试直接重定向主机,我会收到重定向错误(发生了太多的重定向)
有人有想法吗?
先谢谢你。
答案 0 :(得分:0)
<VirtualHost *:80>
ServerName pp16.mv
RewriteEngine on
RewriteCond %{HTTP_HOST} ^pp16\.mv$
RewriteRule ^(/)?$ /mv/pp16/xxx/xxx_dbname.php?login=johsmi&mdp=202cb962ac59075b964b07152d234b70 [R]
</VirtualHost>
重定向没有[L],因为app有内部重定向,没有文档root,因为php无法正确读取 $ _ SERVER ['REQUESTED_URI'] var,所以我可以做到这(我更喜欢)
<VirtualHost *:80>
ServerName pp16.mv
DocumentRoot "D:\apache\htdocs\mv\pp16\xxx"
RewriteEngine on
RewriteCond %{HTTP_HOST} ^pp16\.mv$
RewriteRule ^(/)?$ /xxx_dbname.php?login=johsmi&mdp=202cb962ac59075b964b07152d234b70 [R]
</VirtualHost>
但是php会误读应用路径( / 而不是 / mv / pp16 / xxx / )