【问题标题】:wordpress htaccess in sub folder not redirecting to https子文件夹中的wordpress htaccess未重定向到https
【发布时间】:2019-08-01 00:58:38
【问题描述】:

我有一个带有工作 htaccess 文件的域,它将所有 http 流量重定向到 https。这一切都很好。

这是 .htaccess 文件:

RewriteEngine on
RewriteCond %{REQUEST_URI} !\.well-known/acme-challenge
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]

刚才,我已经在名为“blogg”的子文件夹中安装了wordpress,如下所示:

www.example.com/blogg/

我立即注意到该博客不是 https。所以我去了wordpress admin并将常规设置中的URL从“http”更改为“https”。这似乎使 wordpress 中的所有链接以及管理页面都使用 https。

不幸的是,在网络浏览器中访问博客时它没有帮助,它仍然是 http,虽然如果我在浏览器中手动输入 https 可以工作。

这里是wordpress目录(example.com/blogg/.htaccess)中的htaccess文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blogg/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blogg/index.php [L]
</IfModule>
# END WordPress

我是 .htaccess 的新手,希望在为我的所有域(包括博客)找到正确的代码时获得帮助。帮助表示赞赏。 需要明确的是,我希望所有 http 请求都自动转到 https。

我已经尝试在第二个 .htaccess 文件中添加这一行:(虽然没有运气)。

  RewriteCond %{HTTPS} off RewriteRule ^(.*)$
  https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

BR

【问题讨论】:

  • 您应该在数据库中进行查找/替换,然后搜索 http://yoursite.com 并替换为 https://yoursite.com 有几个可用的插件可以做到这一点。一旦你这样做了,它很可能会像你期望的那样工作,而无需在 .htaccess 中使用自定义重写规则

标签: php wordpress .htaccess ssl https


【解决方案1】:

你可以试试这样的:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blogg/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blogg/index.php [L]
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]    //SERVER_NAME = your actual domain name for WP
</IfModule>
# END WordPress

您也可以查看此代码,因为它是一个更简单的版本。如果在根文件夹中,它也会让您了解 WP htaccess。 :)

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L,NE]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

【讨论】:

  • 不工作。RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L] - 此行重定向到主站点“example.com。例如,@ 987654322@ 重定向到example.com
  • 是的,你需要用实际的 url 替换它,直到你的子目录。如果您在编写自定义 htaccess 时仍然遇到问题,最好使用像“Really Simple SSL”这样的简单插件。它会为你完成这项工作。只需安装在您的博客/ wp 中并按照步骤操作即可。就是这样。
猜你喜欢
  • 2019-06-21
  • 1970-01-01
  • 2011-06-13
  • 1970-01-01
  • 2014-03-16
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
  • 2018-05-17
相关资源
最近更新 更多