我有一个我无法解决的问题,尽管在论坛上进行了数小时的测试和阅读。
昨天我按照以下步骤从http迁移到https:
在此步骤中,我必须在我的htacess中将301重定向写入https,以完成此过程。
但是:已经在我的htaccess中编码的301重定向不再有效了。 我从昨天起就不得不停用我的htaccess文件,这对我的SEO来说是一个很大的问题。
错误消息:“重定向太多”
这是我的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重定向:
我的网站仅使用html / css(无CMS)构建。
提前感谢您,因为我认为其他地方存在重定向冲突。
答案 0 :(得分: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>