0

我在我的 Windows 主机文件中定义了不同的主机,每个项目版本(rc1、rc2 等)都有一个。我想为每个版本创建一个虚拟主机,这样我就可以直接重定向到它的子目录,例如:

pp15.mv => http://localhost/mv/pp15/ .....
pp16.mv => http://localhost/mv/pp16/ .....

此外,我需要将主机 ppX.mv 重定向到自动登录 url,看起来像/mv_dbname.php?login=testlogin&mdp=202cb962ac59075b964b07152d234b70

所以,最后,我想在我的网址栏中输入: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>

第一次重定向效果很好,但是如果我尝试直接重定向主机,我会收到重定向错误(发生了太多重定向)

有人有想法吗?

之前谢谢你。

4

1 回答 1

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],因为应用程序有内部重定向,并且没有文档根目录,因为 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/

于 2011-05-12T06:58:43.403 回答