【问题标题】:How to redirect non-www to www on my Wordpress website如何在我的 Wordpress 网站上将非 www 重定向到 www
【发布时间】:2020-03-15 13:17:37
【问题描述】:

我正在尝试将所有请求从 https://mywebsite.com 重定向到 https://www.mywebsite.com(Wordpress 网站)。

我激活了 SSL 并使用“Really Simple SSL”插件来启用 https。 从http://www.mywebsite.com 重定向到https://www.mywebsite.com 效果很好。

但是当我编写没有 www 的网站时,它就不起作用了。我试图将大量网站中的大量代码添加到我的 .htaccess 中,以将非 www 重定向到 www URL,但它不起作用。我认为在此处粘贴我试图使事情正常但没有任何作用的所有 .htaccess 配置是没有用的。请帮帮我:(

【问题讨论】:

  • 请尝试执行此任务,然后发布带有代码和错误的问题。

标签: wordpress ssl web https http-status-code-301


【解决方案1】:

我认为您可以在 google 上轻松找到答案,例如 https://wordpress.org/support/topic/forcing-http-to-https-and-non-www-to-www/ 最后一篇文章告诉你该怎么做,将它添加到你的 .htaccess 顶部(在你的 Wordpress 站点根目录的 FTP 上找到):

RewriteEngine on
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [L,R=301]

(注意:确保将 www.example.com 更改为您的域。)

另外,您确定您对 .htaccess 所做的任何更改都改变了任何结果吗?一些托管公司要求您通过在后端按下按钮来将更改推送到 .htaccess。否则对 .htaccess 的更改将无效。

更新

好的,它在 Windows 服务器上运行与这里提到的非常相关。 .htaccess 在 Windows 服务器上不起作用。

你能试试这里提到的吗?: IIS Redirect non-www to www AND http to https

所以把这个放在web.config:(别忘了用你的网站替换zzz.com)

<rule name="Force WWW and SSL" enabled="true" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAny">
      <add input="{HTTP_HOST}" pattern="^[^www]" />
      <add input="{HTTPS}" pattern="off" />
  </conditions>
  <action type="Redirect" url="https://www.zzz.com/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>

【讨论】:

  • 您好,感谢您的回答。是的,我已经使用了 .htaccess 并将其放在上面,但它没有用。我正在使用 IIS 服务器,所以我发现我也可以使用web.config 文件进行 https 和 www 重定向,但它不再起作用。当我添加此规则时:&lt;rewrite&gt; &lt;rules&gt; &lt;rule name="Redirect to WWW" stopProcessing="true"&gt; &lt;match url=".*" /&gt; &lt;conditions&gt; &lt;add input="{HTTP_HOST}" pattern="^myExample.in$" /&gt; &lt;/conditions&gt; &lt;action type="Redirect" url="https://www.myExample.in/{R:0}" redirectType="Permanent" /&gt; &lt;/rule&gt; &lt;/rules&gt; &lt;/rewrite&gt;website go off 显示 500 err
  • 更新:我添加了另一个答案,显示我的 web.config 文件。感谢您的帮助。
【解决方案2】:

回复更新:它不起作用。也许我必须等待几个小时才能产生效果?也许我必须更改 IIS 设置中的某些内容?那是我的 web.config 文件。

        <?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <defaultDocument>
            <files>
                <clear />
                <add value="index.php" />
            </files>
        </defaultDocument>
        <rewrite>
            <rules>
                <clear />
                <rule name="WordPress Rule" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php" />
                </rule>
<rule name="Force WWW and SSL" enabled="true" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAny">
      <add input="{HTTP_HOST}" pattern="^[^www]" />
      <add input="{HTTPS}" pattern="off" />
  </conditions>
  <action type="Redirect" url="https://www.mywebsitename.it/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
            </rules>
            <outboundRules>
                <clear />
            </outboundRules>
        </rewrite>
    </system.webServer>
</configuration>

【讨论】:

  • 作为旁注,您是从托管公司租用网站空间吗?这通常是托管公司可以帮助您的事情,您的要求非常基本。是的,我可以想象你有时必须等待。
  • 是的,我要问他们。我注意到的一件有趣的事情是,如果我在移动设备http://mywebsitename.it 上写作,它会带我到https://www.mywebsitename.it ,如果我在 chrome(桌面)上做同样的事情,它会带我到https://mywebsitename.it,所以它不起作用。在https://mywebsitename.it 的情况下,它根本不起作用(移动和桌面)。打电话给客服后我会更新你的。谢谢。
猜你喜欢
  • 1970-01-01
  • 2020-12-28
  • 2020-04-12
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-18
相关资源
最近更新 更多