因此,我开发了一个功能齐全的Laravel 5应用程序,并将其部署到我的客户服务器上,运行Apache2,PHP5和MySQL.该应用程序按预期工作,并正确地重写URL.我现在需要简单地将我的应用程序克隆到另一台运行完全相同堆栈的服务器.问题是我需要将我的应用程序放在子文件夹中,以便可以通过匹配模式的URL访问它domain2.com/movedApp
.
换句话说:第一台服务器响应:
domain1.com/my/routes
Run Code Online (Sandbox Code Playgroud)
第二台服务器需要响应:
domain2/movedApp/my/routes
Run Code Online (Sandbox Code Playgroud)
我试图完全重现VirtualHost指令,该指令适用于第一台服务器,/movedApp
在需要的地方添加并添加RewriteBase
到.htaccess
新public
文件夹中的文件,但无济于事.
我注意到从以下网址正确遵循路由:
domain2.com/movedApp/public/index.php/my/routes
Run Code Online (Sandbox Code Playgroud)
我仍然在Apache2日志中获得404错误资产.
我特此报告我的.htaccess
文件位于public
我工作的Laravel应用程序的文件夹中.
的.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine on
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我还报告了Web服务器用来为我的应用程序提供服务的配置文件
default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/galmaster/public
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/galmaster/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride …
Run Code Online (Sandbox Code Playgroud)