【问题标题】:Two Laravel projects on one VPS with Apache使用 Apache 在一个 VPS 上的两个 Laravel 项目
【发布时间】:2020-02-15 08:06:42
【问题描述】:

我有两个 Laravel 项目,设置在 Apache 服务器上。其中一个项目有自己的域名,假设它是mydomain.dev,另一个是vps-address.com/project2

现在,问题是,当我输入 mydomain.dev 时,我看到了 project1,它应该是。但是当我输入mydomain.dev/project2 时,我看到了另一个项目,但我想让它无法访问。此外,当我输入 vps-address.com/project1vps-address.com/project2 时,我得到 500 Internal Error,error.log 中出现错误:

由于可能的配置错误,请求超出了 10 个内部重定向的限制。如有必要,使用“LimitInternalRecursion”增加限制。

这是我的文件夹结构:

/var/www/html/project1
/var/www/html/project2

这是我的/etc/apache2/sites-available/000-default.conf

DocumentRoot /var/www/html
Alias /project1 /var/www/html/project1/public
Alias /project2 /var/www/html/project2/public

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

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

<VirtualHost *:80>
        DocumentRoot /var/www/html/
    ServerName vps-address.com
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/project1/public
    ServerName mydomain.dev

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

<VirtualHost *:80>
        ServerName vps-address.com/project2
        DocumentRoot /var/www/html/project2/public
</VirtualHost>

我的 .htaccess 在两个 /public 文件夹中:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

我想让 project2 只能通过以下地址访问:vps-address.com/project2,而不是 mydomain.dev/project2,并且 project1 只能通过以下地址访问:mydomain.dev

这可能与 Laravel 和 Apache2 相关吗?

【问题讨论】:

    标签: php laravel apache .htaccess server


    【解决方案1】:

    检查此配置:

    DocumentRoot /var/www/html
    
    <Directory /var/www/html/project1>
        AllowOverride All
    </Directory>
    
    <Directory /var/www/html/project2>
        AllowOverride All
    </Directory>
    
    <VirtualHost *:80>
        DocumentRoot /var/www/html/
        ServerName vps-address.com
        Alias /project2 /var/www/html/project2/public
    </VirtualHost>
    
    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/project1/public
        ServerName mydomain.dev
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    
    </VirtualHost>
    

    编辑: 还将/var/www/html/project2/public 中的.htaccess 更改为:

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews -Indexes
        </IfModule>
    
        RewriteEngine On
        RewriteBase /project2/
    
        # Handle Authorization Header
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
        # Redirect Trailing Slashes If Not A Folder...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} (.+)/$
        RewriteRule ^ %1 [L,R=301]
    
        # Handle Front Controller...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [L]
    </IfModule>
    

    【讨论】:

    • mydomain.dev 现在可以完美运行并且不显示项目2。但是,当我访问 vps-address.com/project2 时,我仍然收到此错误:AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
    • 另外你需要在.env文件中检查你的App Url /var/www/html/project2
    • 一切正常!非常感谢!
    猜你喜欢
    • 2018-06-05
    • 1970-01-01
    • 2020-09-13
    • 2011-03-30
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    相关资源
    最近更新 更多