我已使用以下网址设置了Apache服务器:https://dev.mysite.com
。我现在正在为开发中的每个项目创建子目录。例如,它可能是https://dev.mysite.com/project
或https://dev.mysite.com/anotherproject
。一些正在开发的项目使用Laravel和Laravel Lumen框架。
我不会为每个项目使用vhost文件,因为它们将存在于子目录中。目标是能够访问https://dev.mysite.com/project/public/
并将Laravel或Lumen应用程序提供给访问该项目的用户。我可以让客户访问/ public /查看他们的项目。这种情况没有发生。
-Indexes
,以防止在浏览器中列出文件/目录。
当我导航到{url}/project/public/heartbeat
时(例如),路由未正确提供(或解析)。当我die
$_SERVER['REQUEST_URI']
时,我得到/project/public/heartbeat
。路线heartbeat
的设置如下:$app->get('/heartbeat', 'Controller@method');
。访问此URL会从Illuminate代码中提供典型的HTTP not found异常。然而;当我将project/public/
添加到路径路径的开头(导致$app->get('/project/public/heartbeat'...
)时,它可以工作。我尝试将RewriteBase /
和RewriteBase /project/public/
以及RewriteBase /project/
设置添加到.htaccess文件中,但都不起作用。我知道.htaccess正在被使用(我可以添加' asdf'到文件并打破它)。 mod_rewrite模块已启用。
以下是vhost和project / public / .htaccess文件的配置文件。
htaccess的:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
虚拟主机:
<VirtualHost *:80>
ServerName dev.mysite.com
Redirect permanent / https://dev.mysite.com
</VirtualHost>
<VirtualHost *:443>
ServerName dev.mysite.com
DocumentRoot /var/www/public
<Directory /var/www/public>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/dev-error.log
CustomLog ${APACHE_LOG_DIR}/dev-access.log combined
ErrorDocument 403 https://dev.mysite.com
</VirtualHost>
如果您需要任何进一步的信息,请与我们联系。同样,最终目标是能够访问https://dev.mysite.com/project/public/
并将Laravel,Lumen等应用程序提供给访问该项目的用户。
答案 0 :(得分:0)
export PATH=$PATH:/Users/jon/Library/Android/sdk/tools
export PATH=$PATH:/Users/jon/Library/Android/sdk/platform-tools
请注意,您需要在<VirtualHost *:80>
DocumentRoot "/some/directory/mysite.dev"
ServerName mysite.dev
</VirtualHost>
设置初始“根”项目。这不一定是一个laravel应用程序,它只需要一个/some/directory/mysite.dev
文件,也许你可能想要一个.htaccess
文件,所以当你访问mysite.dev时,你可以在至少看到的东西。这是可选的。
在index.html
文件夹中,创建一个/some/directory/mysite.dev
文件并添加以下内容:
.htaccess
当您访问<IfModule mod_rewrite.c>
RewriteEngine On
# We need this to stop the rewrite rule looping as the URI
# and directory both start with 'SubProject'
RewriteCond %{REQUEST_URI} !^/SubProject/
# direct all requests that start with SubProject
RewriteRule ^ SubProject/?(.*)/?$ /SubProject/public/index.php [L]
</IfModule>
时,应加载该项目的mysite.dev/SubProject
文件。