【发布时间】:2019-03-16 16:28:18
【问题描述】:
我的网站在以下网址运行 www.mywebsite.com 没有任何问题。因此,在创建项目时,我在根文件夹中应用了一些 .htaccess 规则,如下所示:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Remove www
RewriteCond %{HTTP_HOST} ^www.mywebsite.com$ [NC]
RewriteRule ^(.*)$ https://mywebsite.com$1 [R=301,L]
# Remove http and force https
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [QSA,R,L]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
</IfModule>
问题是,如果我访问 www.mywebsite.com/public,我仍然可以查看该网站,但没有应用 CSS(因为 URL 错误)。
我怎样才能将 URL www.mywebsite.com/public 重定向到 www.mywebsite.com,而不会触发我的 URL www.mywebsite.com/public/img/someimage.png?
编辑:为了让自己清楚:
www.mywebsite.com -> it's working -> I don't want to change that
www.mywebsite.com/public/img/someimage.png -> it's working -> I don't want to change that
www.mywebsite.com/public -> It's working -> I see my website without the CSS applied -> I WANT to change this by redirecting users to www.mywebsite.com
【问题讨论】:
-
正确设置您的 Apache
DocumentRoot指向public文件夹。 -
@ceejayoz 这是一个共享主机。
-
大多数共享主机在不可通过 Web 访问的父文件夹中都有一个
httpdocs、public、public_html等文件夹。如果是这种情况,请将 Laravel 的public文件夹放在那里(如果不叫public,请咨询 stackoverflow.com/questions/30198669/…)。如果情况不是,那就找一个更好的主机。 -
(旁注:如果您想知道为什么这很重要,请查看此 Google 搜索:google.com/search?q=db_password+filetype%3Aenv)
-
@ceejayoz 我认为你不明白这个问题。我要编辑帖子。