我通常不使用Apache,我很难让重写规则工作。
根文件夹包含一个名为public_html的文件夹,当您浏览到它按预期加载的网站时,我假设 Apache 会自动在public_html文件夹中找到索引文件。我遇到的问题是,当将重写规则从 http 添加到 https 时,它会将public_html添加到 url 并产生"未找到"错误。
这是我使用的重写规则:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://exampledomain.com/$1 [R=301,L]
生成的网址如下所示:
https://www.exampledomain.com/public_html
所需的 url 如下所示:
https://www.exampledomain.com
这个问题有两个部分:
- htaccess 文件应该在根文件夹中还是在public_html文件夹中?
- 如何防止重写规则添加public_html?
任何帮助将不胜感激,如果您想了解更多信息或觉得不清楚,请告诉我。
由于这是一个共享主机,因此在服务器配置中可能已经配置了一些重写(例如为每个请求添加/public_html
前缀)。您可以尝试解决方法:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^public_html/(.*)$ https://exampledomain.com/$1 [R=301,L]