nou*_*ine 21 .htaccess laravel
我有一个经典的Larevel 5项目结构,我需要将所有请求重定向到public/.
我在经典的托管环境中,因此public/是我的文档根目录的子文件夹.
我会想象它可以通过.htaccess完成,但我仍然需要弄清楚如何.有人可以帮忙吗?
谢谢
Muh*_*lim 38
有两种解决方案:
1.将.htaccess与mod_rewrite一起使用
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
Run Code Online (Sandbox Code Playgroud)
2.您可以添加包含以下代码的index.php文件,并将其放在根Laravel文件夹(public_html文件夹)下.
<?php
header('Location: public/');
Run Code Online (Sandbox Code Playgroud)
Gil*_*ino 15
您不需要更改 Laravel 默认的public/.htaccess文件中的任何内容。
只要创建一个新的.htaccess在同级别的公共文件夹和添加以下内容吧:
DirectoryIndex index.php
RewriteEngine On
RewriteRule ^$ public/index.php [L]
RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
Run Code Online (Sandbox Code Playgroud)
就这么简单!
小智 7
这是另一个答案的摘录,也可能对您有所帮助.
-
修改您的public_html/.htaccess所有请求重定向到public子文件夹.
# public_html/.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect All Requests To The Subfolder
RewriteRule ^ /public
</IfModule>
Run Code Online (Sandbox Code Playgroud)确保你有正确的public_html/public/.htaccess(GitHub).
# public_html/public/.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>
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
38220 次 |
| 最近记录: |