如何安装两次 codeigniter 3.11

问题描述 投票:0回答:0

我有一个要求,我需要使用 codeigniter 3.11 运行两个单独的应用程序,其中一个应用程序已经从根目录运行,另一个应用程序应该从同一服务器和域上的子目录运行。我有以下限制

  1. 我无法拥有子域
  2. 我无法在两个应用程序中运行虚拟主机设置 在他们自己的目录中,例如 example.com/site1 和 example.com/site2。因为 site1 已经在公共场合使用多年,并且像 example.com 这样从 root 运行将显示 site1。现在我不能要求用户使用 example.com/site1 而不是 example.com。
  3. 我无法使用 2 个单独的应用程序文件夹,因为主应用程序在应用程序文件夹之外也有许多文件。 第二个应用程序仅适用于少数用户并且完全独立。但它应该在 URL example.com/site2 下可用。请指导我如何实现它。

这就是我目前所做的。

  1. 在 apache conf 中创建了一个引用 site2 的目录条目。
  2. 尝试使用 htaccess 使 site2 工作但失败。尝试了不同的 htaccess 更改,但它们需要一个子域才能工作,而我没有。
  3. 当前有 CI 3.11 的默认 htaccess 文件。

我所做的改变

虚拟主机

set DocumentRoot /var/www 
Alias / /var/www/html 
<Directory /var/www/html>
  Options -Indexes +FollowSymLinks +MultiViews
  AllowOverride All
  Require all granted
</Directory> 
Alias /site2 /var/www/site2 
<Directory /var/www/site2> 
 Options -Indexes +FollowSymLinks +MultiViews
 AllowOverride All
 Require all granted
</Directory> 

站点1.htaccess

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|public|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule> 

.htaccess 站点2

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /site2/ 

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|public|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]

</IfModule>

但是如果我像下面那样尝试,这两个网站都无法工作

http://site1 -- Forbidden 
http://site1/site2 -- The requested URL was not found on this server

我希望在访问 example.com 时显示 site1,并在访问 example.com/site2 时显示 site2。

非常感谢任何帮助。

谢谢

php apache2 codeigniter-3 ubuntu-18.04
© www.soinside.com 2019 - 2024. All rights reserved.