Apache 在测试服务器上设置多个项目

Apache Setup Multiple Project On Test Server

我在我的 Virtualbox 上使用 CentOS 7 和 Apache。

此 VM 有自己的 IP 地址 (XXX.XX.XX.XX)。

有了下面的这个设置,我可以通过输入 http://XXX.XX.XX.XX

在浏览器上访问我的项目
<VirtualHost *:80>       
  DocumentRoot /var/www/html/project_name/public/       

  <Directory /var/www/html/project_name/> 
    AllowOverride All 
  </Directory> 

  ErrorLog /var/log/apache2/project_name-error_log 
  CustomLog /var/log/apache2/project_name-common_log combined
</VirtualHost> 

我的问题是我有另一个 Web 应用程序项目将 运行 在此机器上。

我可以像下面这样使用不同的端口号配置两个项目的访问权限吗?

http://192.168.10.1:8001
http://192.168.10.1:8002

解决方案:

以下是我如何让它发挥作用的:

Listen 8001
Listen 8002 

<VirtualHost *:8001> 
ServerName ipaddress:8001 

<VirtualHost *:8002> 
ServerName ipaddress:8002
<VirtualHost *:80>
        ServerName www.example.com
        DocumentRoot /var/www/html/project_name/public/
</VirtualHost>
<VirtualHost *:80>
        ServerName example.com
        DocumentRoot /var/www/html/project_name/public/
</VirtualHost>


<VirtualHost *:80>
        ServerName www.abc.com
        DocumentRoot /var/www/html/project_name1/public/
</VirtualHost>
<VirtualHost *:80>
        ServerName abc.com
        DocumentRoot /var/www/html/project_name1/public/
</VirtualHost>

试试这个。在配置中,您可以在同一端口 80

上设置具有不同目录的多个域

第二个选项运行喜欢http://xx.xxx.xxx.xx/project1 and http://xx.xxx.xxx.xx/project2

在项目文件夹内的 .htaccess 中设置

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond  %{REQUEST_URI}  !^/mm.*$
    RewriteRule ^(.*)$ public/ [L,QSA]

    RewriteCond  %{REQUEST_URI}  ^/mm.*$
    RewriteRule ^/mm/(.*)$ public/mm/ [L,QSA]
</IfModule>
AddDefaultCharset utf-8