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

.htaccess 在不强制https的情况下将非www重定向到www,.htaccess,redirect,url-redirection,.htaccess,Redirect,Url Redirection,我有一个客户,他有一个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非常有用。但是它也会将所有ht

我有一个客户,他有一个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不受影响

例如:

->

->

谢谢

美国东部时间: 现有。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>
试试这个:

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>

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

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

然后点击保存按钮


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

我想您必须针对每个案例分别执行此操作,因为实际上没有办法将此信息作为反向参考或类似的内容。检查HTTPS的附加重写条件,位于重写为的规则之前https://... 明确地说。谢谢@CBroe。你知道怎么做吗?我不想单独做,因为大约有100个https ppc登录页和400多个http SEO页面。我指的是http和https,而不是每个URL…好的。怎样我对这方面的知识相当有限。谢谢。我试过了,但它仍然强制https页面使用http。所有缓存都被清除,包括CDN。使用此代码,我有以下内容:重定向到。但仍转到。将.htaccess文件的其余部分粘贴到原始文件question@JoshN请参阅更新的代码,清除缓存测试。但如前所述,它是一个WordPress/静态HTML混合网站。这并不能解决我的问题。