菜单链接仅使用http启用HTTPS后,无法重定向http链接

时间:2021-08-12 作者:Mario Parra

我在Bluehost共享托管服务器上有一个WordPress网站,因为我的共享空间中有多个网站,所以我在自己的文件夹中有一个特定的文件夹public_html. 这意味着我有.htaccess 文件位于public_html, 将我的域重定向到特定的网站文件夹。我还有另一个.htaccess 网站文件夹中的文件,其中有一些WordPress设置和非www URL的重定向。我已尝试添加此http->;两者中的https规则.htaccess 文件,但它没有效果:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
</IfModule>
我在WordPress中的菜单链接也有相关问题。尽管我的WP和站点地址包含https,但我的菜单链接是用http呈现的。如果我只使用锚ID或完整URL的自定义链接,就会发生这种情况。可能有什么.htaccess 文件是否有干扰?为什么我的http->;是否忽略https规则?

1 个回复
最合适的回答,由SO网友:MrWhite 整理而成

RewriteCond %{HTTP_HOST} ^example\\.me [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.me/$1 [R,L]
您尚未说明在您的.htaccess 文件。订单很重要。这些指令需要放在.htaccess 文件,在WordPress前端控制器之前,否则它们将不会重定向除静态资源以外的任何内容。

此规则也将仅重定向example.com, 它不会规范化http://www.example.com/ (即HTTP和www)-这大概就是目的所在。

要将非www重定向到www,并将HTTP重定向到HTTPS,您需要包括OR 标志在第一种情况下example.com 或HTTP-默认值为隐式和。例如:

RewriteCond %{HTTP_HOST} ^example\\.me [NC,OR]
RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://www.example.me/$1 [R,L]
你也不需要<IfModule> 包装或重复RewriteEngine On 指令,如果它在文件后面已经存在。

最终,这应该是一个301(永久)重定向,所以RR=301 一旦您确认它按预期工作。

我有一个.htaccess public\\u html中的文件redirects 我的域到特定网站文件夹

我想你的字面意思是“a”;重定向(&Q);而不是内部重写?在这种情况下,这是可以的。但是,如果您在内部将请求重写到特定的子目录,那么上述操作是不正确的,因为它将在URL中公开子目录。在这种情况下,应该从子目录中删除该规则.htaccess 文件

相关推荐

Https://mydomain/wp-admin重定向至wp-login.php?redirect_to=https%3A%2F%2Fmydomain%2Fwp-admin%2F&reauth=1

无论何时我进入https://mydomain/wp-admin未登录时,我被重定向到wp-login.php?redirect_to=https%3A%2F%2Fmydomain%2Fwp-admin%2F&reauth=1 在一些帮助下,我创建了以下代码来重定向登录到wp的用户。要转发到所需自定义页面的php url:function redirect_wp_login_to_custom_login() { global $pagenow; $red