Laravel 在 1and1 服务器上
Laravel on 1and1 server
我有一个 1&1 WebServer unlimited,我正在尝试通过 FTP 将我的新 Laravel(最新版本)项目放入此服务器的子文件夹(称为 v2
)中.
像这样访问我的网站时:www.mywebsite.com/v2/
我得到以下信息:
Error 403 - Forbidden
L'accès au fichier requiert une autorisation.
(this is french, it means we are not authorized to access the file)
我已经尝试将 v2
和所有子文件夹的文件权限更改为 777
,但没有任何改变。
我怀疑默认 Laravel .htaccess
是 1&1 服务器上的问题。
这里是:
<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 ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
有没有人已经遇到这个问题并设法解决了它?
您应该创建虚拟主机并将其指向 /v2/public 文件夹。例如:
<VirtualHost *:80>
ServerName v2.mywebsite.com
DocumentRoot "/home/path_to_your_v2_folder/public"
<Directory "/home/path_to_your_v2_folder/public">
AllowOverride all
</Directory>
</VirtualHost>
重新启动 Apache 后,您将能够在 v2.mywebsite.com
上使用 Laravel
更新:
也许你有某种控制面板软件?或者 1&1 支持会为您添加虚拟主机?
此外,还有一点丑陋但可行的解决方案。例如,如果您有权访问 userhome
(仅作为示例)目录,其中您的网站有 public_html
或 www
或其他文件夹。因此,只需将您的 Laravel 项目安装在该 userhome
目录中并创建 symbolic link
从 Laravel 的 public
目录指向 public_html/v2/
或 www/v2
。如果您可以通过 SFTP 或 SSH 协议访问服务器,则可以这样做。如果您只有 FTP(这在我们这个时代很奇怪),您将无法创建符号链接。
我有一个 1&1 WebServer unlimited,我正在尝试通过 FTP 将我的新 Laravel(最新版本)项目放入此服务器的子文件夹(称为 v2
)中.
像这样访问我的网站时:www.mywebsite.com/v2/
我得到以下信息:
Error 403 - Forbidden
L'accès au fichier requiert une autorisation. (this is french, it means we are not authorized to access the file)
我已经尝试将 v2
和所有子文件夹的文件权限更改为 777
,但没有任何改变。
我怀疑默认 Laravel .htaccess
是 1&1 服务器上的问题。
这里是:
<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 ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
有没有人已经遇到这个问题并设法解决了它?
您应该创建虚拟主机并将其指向 /v2/public 文件夹。例如:
<VirtualHost *:80>
ServerName v2.mywebsite.com
DocumentRoot "/home/path_to_your_v2_folder/public"
<Directory "/home/path_to_your_v2_folder/public">
AllowOverride all
</Directory>
</VirtualHost>
重新启动 Apache 后,您将能够在 v2.mywebsite.com
上使用 Laravel更新:
也许你有某种控制面板软件?或者 1&1 支持会为您添加虚拟主机?
此外,还有一点丑陋但可行的解决方案。例如,如果您有权访问 userhome
(仅作为示例)目录,其中您的网站有 public_html
或 www
或其他文件夹。因此,只需将您的 Laravel 项目安装在该 userhome
目录中并创建 symbolic link
从 Laravel 的 public
目录指向 public_html/v2/
或 www/v2
。如果您可以通过 SFTP 或 SSH 协议访问服务器,则可以这样做。如果您只有 FTP(这在我们这个时代很奇怪),您将无法创建符号链接。