代码之家  ›  专栏  ›  技术社区  ›  Josh N

在不强制https的情况下将非www重定向到www

  •  0
  • Josh N  · 技术社区  · 6 年前

    我有一个客户,他有一个http SEO'ed wordpress站点,带有https AdWords静态html登录页(我知道-不问)。 他们想301所有非www到www。我尝试了以下htaccess代码:

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

    这对于将所有URL从非www重定向到www非常有用。但是它也会将所有https URL更改为http。

    我如何才能得到它,使所有非www重定向到www,但http和https不受影响。

    例如:

    http://example.com/seo-page -&燃气轮机; http://www.example.com/seo-page

    https://example.com/ppc-page -&燃气轮机; https://www.example.com/ppc-page

    谢谢

    EDT: 现有。htaccess是:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule .* - [E=CANONICAL:http://%{HTTP_HOST}%{REQUEST_URI},NE]
    RewriteCond %{HTTPS} =on
    RewriteRule .* - [E=CANONICAL:https://%{HTTP_HOST}%{REQUEST_URI},NE]
    </IfModule>
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Mohammed Elhag    6 年前

    尝试以下操作:

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

    拯救 .htaccess 试试这个:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    
    RewriteCond %{HTTP_HOST} !^(www\.) 
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTPS}:s on:(s)
    RewriteRule .* - [E=CANONICAL:http%1://www.%{HTTP_HOST}%{REQUEST_URI},NE]
    
    RewriteCond %{HTTP_HOST} ^(www\.)
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTPS}:s on:(s)
    RewriteRule .* - [E=CANONICAL:http%1://%{HTTP_HOST}%{REQUEST_URI},NE]
    </IfModule>
    
        2
  •  0
  •   Gurpreet Singh    6 年前

    如果您使用的是WordPress,则不需要在中添加任何代码。htaccess文件。您可以通过在“设置”中输入www或非www url重定向整个网站。

    登录名 wp管理员 然后击中 设置 按钮和访问 这个 第三个字段名称 (WordPress地址(URL))输入您要重定向网站的URL。并将相同的URL粘贴到 下一字段名称 (网站地址(URL))

    然后 点击保存按钮

    祝贺您的网站成功重定向。