【发布时间】:2020-02-15 08:06:42
【问题描述】:
我有两个 Laravel 项目,设置在 Apache 服务器上。其中一个项目有自己的域名,假设它是mydomain.dev,另一个是vps-address.com/project2。
现在,问题是,当我输入 mydomain.dev 时,我看到了 project1,它应该是。但是当我输入mydomain.dev/project2 时,我看到了另一个项目,但我想让它无法访问。此外,当我输入 vps-address.com/project1 或 vps-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