两个不同的项目(不同的index.php' s)在同一台服务器上

时间:2015-09-28 20:19:54

标签: linux apache centos mod-alias

我试图在同一台服务器上运行两个不同的php框架。要使用的框架由uri中的第一条路径决定。

例如:

  

http://www.example.com/v1/requestname

将转到位于:

的index.php
  

/无功/网络/ HTML / API / API

其他一切(http://www.example.com/v2/requestname)将转到位于:

的index.php
  

/无功/网络/ HTML / API2 /公共

这是我的apache 2.2 config:

Alias /v1 /var/www/html/api/api
<Directory /var/www/html/api/api>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php
</Directory>

DocumentRoot "/var/www/html/api2/public"
<Directory "/var/www/html/api2/public">
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php
</Directory>

我一直试图用apache做这个,但每个请求都被路由到api2。我所看到的一切似乎都说这应该有效。

1 个答案:

答案 0 :(得分:0)

所以,这是我为未来的任何人提出的解决方案:

将以/ v1开头的任何内容设置为发送到API的第一个版本。

Alias /v1 /var/www/html/api/api/index.php

将其他所有内容发送到第二个版本:

DocumentRoot "/var/www/html/api2/public"
<Directory "/var/www/html/api2/public">
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php
</Directory>

诀窍是将index.php添加到Alias的末尾。