我有这个结构:
我的域名:www.example.com
这是我的laravel项目文件夹:http://www.example.com/project
我想要重定向到http://www.example.com/project/public
我知道这个问题以前已经有答案了,但我尝试实现它并没有成功。
对不起,我的英语不好,我只会说西班牙语。
我有这个结构:
我的域名:www.example.com
这是我的laravel项目文件夹:http://www.example.com/project
我想要重定向到http://www.example.com/project/public
我知道这个问题以前已经有答案了,但我尝试实现它并没有成功。
对不起,我的英语不好,我只会说西班牙语。
关于 htaccess 的内容:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteCond %{REQUEST_URI} !project/public/
RewriteRule (.*) /project/public/$1 [L]
将其放入您的 public_html/ 或 www/ 文件夹中,该文件夹是 example.com/ 的根目录。
将/server.php重命名为index.php
我创建了这个 PHP 脚本并将其放置在 Laravel 目录的根目录中:
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; header("Location: " . $actual_link . "public/index.php");
为了在 Laravel 应用程序(版本 >8)中的默认域上提供公共目录,您可以按照以下步骤操作:
进入 Laravel 应用程序的根目录(通常命名为 public_html)。 创建一个名为 .htaccess 的文件。确保您已打开显示隐藏文件的选项。如果您看不到该文件,请单击右上角的“设置”并切换“显示隐藏文件”或“显示点文件”。 打开您创建的 .htaccess 文件,并添加以下代码:
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule>
RewriteEngine On
# Handle Authorization MemberHeader
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Remove public URL from the path
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteCond %{REQUEST_URI} !^/public/ RewriteRule ^(.*)$ /public/$1 [L,QSA]
重写引擎开启 重写条件 %{REQUEST_URI} 不是以public开头 重写规则 ^(.*)$ 转发到 public/$1 并结束 [L]