所以我已将我的项目上传到 cPanel 的 public_html 文件夹,我的 URL 是
https://website.com
但我的网址看起来像https://website.com/public
每当我尝试获取 https://website.com
时,某些有线 URL 都会出现 404 错误或继续加载页面。
那么我怎样才能使用 .htaccsess 并使我的 URL https://website.com/about
看起来像这样,而不是这样 https://website.com/public/about
另外,我希望我所有的
http://
请求继续进行 https://
经过大量查找后,我发现了这条线,但它有时有效,有时无效。
RewriteRule ^(.*)$ public/$1 [L]
这是我网站根文件夹的 .htaccsess 文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php81” package as the default “PHP” programming language.
<IfModule mime_module>
AddHandler application/x-httpd-ea-php81 .php .php8 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit
另外,让答案变得笼统,以便我或任何人都可以在任何情况下使用它。 并提供任何解释链接,因为我想学习这个。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
解释
将 HTTP 重定向到 HTTPS:如果请求不安全 (HTTP),第一个规则会将用户永久重定向到 URL 的 HTTPS 版本。
从公共目录提供服务:对于任何 URL 请求(检查 HTTPS 后),第二条规则会重写 URL 以从 public/ 目录提供文件,这在 Laravel 应用程序中很常见。