public_html子文件夹中的Laravel项目在.htaccess重定向方面遇到问题
我已经设置了我的VPS服务器,正在尝试设置一个Laravel项目。 我有一个public_html子文件夹中的Laravel项目在.htaccess重定向方面遇到问题,.htaccess,laravel,redirect,vps,public-html,.htaccess,Laravel,Redirect,Vps,Public Html,我已经设置了我的VPS服务器,正在尝试设置一个Laravel项目。 我有一个/public\u html/文件夹,在访问网站URL时显示index.html 我在:/public\u html/project\u one/ 原始index.php位于/public\u html/project\u one/public/index.php 我希望该网站在默认情况下显示给Laravel project_one,但从昨天开始,我在Google上搜索了4个小时,我尝试了stackoverflow上
/public\u html/
文件夹,在访问网站URL时显示index.html
- 我在:
/public\u html/project\u one/
- 原始index.php位于
/public\u html/project\u one/public/index.php
/public\u html/
中设置.htaccess以便它重定向到my Laravel项目?
我想我需要上传我的Laravel文件夹:/public\u html/project\u one/
,但是有更好的位置吗
我希望主url显示Laravel项目。所以www.mainurl.com
是Laravel的project\u one/public/index.php
文件。我不想在URL中写入/project\u one/
出于好奇,如果我现在访问:www.mainurl.com/project\u one
我会得到一个403
失败的解决方案
在/public\u html/I中,我尝试使用以下内容添加.htaccess:
DirectoryIndex index.php
#Redirect to /project_one/public if you haven't already and the IP is okay
RewriteCond %{REMOTE_ADDR} ^1\.2\.3\.4*
RewriteCond %{REQUEST_URI} !^/project_one/public
RewriteRule ^(/lucaphoto)?(.+) /project_one/public$2 [L]
#if IP does not match and you ARE in the folder, then Redirect to root
RewriteCond %{REMOTE_ADDR} !^1\.2\.3\.4*
RewriteCond %{REQUEST_URI} ^/project_one/public
RewriteRule .? / [R=301,L]
这让我觉得很奇怪:
/project\u one/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]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
选项-多视图
重新启动发动机
#如果不是文件夹,则重定向尾部斜杠。。。
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)/$/$1[L,R=301]
#处理前控制器。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]
#句柄授权头
RewriteCond%{HTTP:Authorization}。
重写规则。*-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]
实际的laravle应用程序(除公用文件夹外的任何内容)不应该是公用的,因此不应该放在公用(public_html)文件夹中
实际上,我尝试了一些类似于您的设置运行的东西。我的结论是-只有更改.htaccess文件才能在公用文件夹中运行laravel
快速设置laravel应用程序最简单的解决方案是使用直接指向公用文件夹的子域
www.mainurl.com /* points to .../public_html/ */
laravel.mainurl.com /* points to .../laravel/public/ OR ( but not good ) */
/* points to .../public_html/my-project/public/ */
实际上,您需要做的是将域/子域的根目录更改为指向另一个文件夹-此时不需要更改.htaccess
更新
如果您的网站是www.example.com,并且您希望在打开此网站时显示您的laravel应用程序,则您有两个选择
如果您给我们一些关于您的主人的信息,我们可能会提供一个指南实际的laravle应用程序(除公用文件夹外的任何内容)不应该是公用的,因此不应该放在公用(public_html)文件夹中 实际上,我尝试了一些类似于您的设置运行的东西。我的结论是-只有更改.htaccess文件才能在公用文件夹中运行laravel 快速设置laravel应用程序最简单的解决方案是使用直接指向公用文件夹的子域
www.mainurl.com /* points to .../public_html/ */
laravel.mainurl.com /* points to .../laravel/public/ OR ( but not good ) */
/* points to .../public_html/my-project/public/ */
实际上,您需要做的是将域/子域的根目录更改为指向另一个文件夹-此时不需要更改.htaccess
更新
如果您的网站是www.example.com,并且您希望在打开此网站时显示您的laravel应用程序,则您有两个选择
如果您给我们一些关于您的主人的信息,我们可能会提供一个指南非常感谢!不过我不太清楚你的意思。。。基本上我有一个拉威尔项目