.htaccess public/public/public/ [重复]

dldeef67  于 2023-05-01  发布在  其他
关注(0)|答案(2)|浏览(155)

此问题已在此处有答案

How to make public folder as root in Laravel?(3个答案)
昨天关门了。
在我的Laravel项目中,应用程序根目录中的.htaccess重定向到/public。页面加载,我可以通过Web应用程序导航。但是https://myproject.com/public/public/mysite显示在URL中。
当我刷新页面时,我得到一个404错误,因为myproject.com/public/public/当然不存在。当我删除public/public时,laravel立即重定向回https://myproject.com/public/public/mysite
public/public从何而来?我试了一些。htaccess配置,检查.env文件,但它不存在逻辑原因,我为什么应用程序重定向到public/public/.
谁能帮帮我?
root中的.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

.htaccess in /public

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    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]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

.env APP_URL

APP_URL=https://example.com

有人有主意吗?如果你需要更多的信息,问我。
Laravel 9.2PHP 8.2.4

3okqufwl

3okqufwl1#

miken 32建议:
Web服务器文档根目录必须是公共目录。Laravel是一个。htaccess文件已经公开了,不要更改它。Laravel不带一个。应用程序根目录中的htaccess文件。把它拿走-miken 32
您的Web服务器需要正确配置。此分类下一篇:miken 32
完全正确。
在Strato虚拟主机中,必须在“Webspace”菜单选项卡中创建域的文件夹。然后必须将域设置为所需的根目录。我在“设置”(齿轮)下的“域”菜单选项卡中找到了这个。在我的例子中,我不得不选择my-created-domainfolder/public
在此之后,php artisan route:clearphp artisan cache:clearcomposer dump-autoload都可以作为aspected工作。

z18hc3ub

z18hc3ub2#

你可以删除。htaccess,并将此代码添加到您的根目录。htaccess,这不会让.env可以从URL访问,并将解决您当前的问题。

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

<Files .env>
    Order allow,deny
    Deny from all
</Files>

<Files .zip>
    Order allow,deny
    Deny from all
</Files>

相关问题