2017-03-15 56 views
0

我有一个问题,我无法解决,尽管在论坛中有很多小时的测试和阅读。移植到https后出现htaccess问题(网站+ KeyCDN)

昨天我按照这些步骤,从HTTP迁移到https:

  1. 激活SSL证书在我的主机面板(包含在我的网站上的共享的Apache托管一个让我们的加密证书)
  2. 更新所有硬编码到HTTPS链接(规范的URL,JS等各+硬编码KeyCDN链接)
    • 每一页都与this tool检查:“没有发现问题”
  3. 启用共享SSL在我KeyCDN面板+力SSL: “已启用” +更新源URL(HTTP到HTTPS)
  4. 吹扫KeyCDN缓存

在这一步,我不得不写301重定向到我的htacess中的https,完成该过程。

但是:在我的htaccess中已经编码的301重定向不再起作用。 我不得不从昨天开始关闭我的htaccess文件,这对我的搜索引擎优化来说是一个巨大的问题。

错误消息: “太多的重定向”

这是我的htaccess:

<files .htaccess> 
order allow,deny 
deny from all 
</files> 

Options -Indexes 
ErrorDocument 403 http://www.example.com 
ErrorDocument 404 /404.html 

## CANONICAL DOMAIN WITH 301 REWRITE WITHOUT WWW TO WWW 
RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [QSA,L,R=301] 

## 301 REWRITE WITHOUT .HTML AT THE END OF FILES 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.*)$ $1.html 

## OLD SITE WITH 301 REWRITE WITHOUT INDEX.HTML/.PHP IN URLS 
RewriteEngine On 
Redirect 301 /index.php http://www.example.com 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.html?\ HTTP/ 
RewriteRule ^(([^/]+/)*)index\.html?$ http://www.example.com/$1 [R=301,L] 

## 301 REWRITE FOR MOVED PAGES 
Redirect 301 /old-url-1 http://www.example.com/new-url-1 

我已经尝试了很多代码片段,使301重定向从HTTP到HTTPS,如:

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

没有任何作用:即使使用先前的htaccess,网站不再显示(“太多重定向”),我必须停用。

能不能帮我请,写的好301重定向:

  • 从HTTP到HTTPS,
  • 加www到www,
  • 没有.html文件扩展名
  • 没有尾部斜线(/)在我的目录结尾

我的网站只用html/css(无CMS)构建。

预先感谢您,因为我认为在其他地方存在重定向冲突。

回答

0

下面是答案:

<files .htaccess> 
order allow,deny 
deny from all 
</files> 

Options +FollowSymlinks 
Options -MultiViews 
RewriteEngine on 

RewriteRule ^/normal/secure(/.*) https://%{HTTP_HOST}$1 [R=301,L] 
RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC] 
RewriteRule^/%1 [NC,L,R] 

RewriteCond %{REQUEST_FILENAME}.html -f 
RewriteRule^%{REQUEST_URI}.html [NC,L] 
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] 
RewriteRule ^(.*)$ https://www.example.com/$1 [QSA,L,R=301] 

<FilesMatch "\.(woff)$"> 
Header unset Vary 
</FilesMatch> 

<FilesMatch "\.(eot)$"> 
Header unset Vary 
</FilesMatch>