首页 > 解决方案 > .htaccess 用于共享主机上的多个 laravel 安装

问题描述

我在一个共享主机帐户中有多个 laravel 项目。域 1 拥有根文件夹,其中包含链接到 Laravel project1 的 index.php 文件和一个 .htaccess 文件。

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteRule ^([a-z0-9-_]+)\ ([^/]+)/(.*)/? /$1$2/$3/ [L]

域 2 指向一个名为 project2 的子文件夹,它是 project1 的克隆,它读取另一个 mysql 数据库。

可悲的是,当使用 domain2 时,任何子域都会返回内部服务器错误。据我所知,问题与 .htaccess 文件有关,该文件强制 url 由 project1 而不是 project2 的 index.php 处理。

我能做些什么来避免上述行为?

标签: phplaravel.htaccessshared-hosting

解决方案


工作解决方案:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain1.com$ [OR]
RewriteCond %{HTTP_HOST} ^domain2.com$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteCond %{HTTP_HOST} ^www.domain2.com$ [OR]
RewriteCond %{HTTP_HOST} ^domain2.com$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ project2/index.php [L]
RewriteRule ^([a-z0-9-_]+)\ ([^/]+)/(.*)/? /$1$2/$3/ [L]

推荐阅读