.htaccess无法实现HTTP跳转HTTPS且静态资源加载异常如何解决
我已经尝试了无数次方案,参考了Stack Overflow、技术博客的教程,甚至我的主机服务商也曾协助配置,但均未成功,也有可能是我之前调整缓存的操作导致配置失效。
我需要将所有HTTP访问流量重定向到HTTPS,否则会影响用户购买转化。
以下是我当前.htaccess文件的内容,请问需要修改哪些部分?
AddType text/html .shtml AddHandler server-parsed .shtml Options Indexes FollowSymLinks Includes AddHandler server-parsed .html .htm <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilter DEFLATE .shtml </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.pottertour.co.uk/$1 [R,L] </IfModule> <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 10 days" ExpiresByType text/html "access plus 1 day" ExpiresByType text/css "access plus 0 day" ExpiresByType text/plain "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/webp "access plus 1 month" ExpiresByType application/x-javascript "access plus 1 month" ExpiresByType application/javascript "access plus 1 week" ExpiresByType application/x-icon "access plus 1 year" </IfModule> # END EXPIRES
我按照MrWhite的建议尝试移除<IfModule mod_rewrite.c>包裹标签后,站点出现了持续重定向循环。因此我回退了部分配置,仅保留了无包裹标签的重定向规则,如下所示:
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^pottertour.co.uk [NC] RewriteRule ^(.*)$ https://www.pottertour.co.uk/$1 [L,R=301]
- 当前配置导致Google Fonts、styles.css文件加载被拦截,该问题十分严重。
- HTTP到HTTPS的重定向仍然未生效。
恳请各位提供解决方案及对应的原理说明。
后续我在MrWhite的指导下再次调整了配置,完整的.htaccess文件内容如下:
AddType text/html .shtml AddHandler server-parsed .shtml Options Indexes FollowSymLinks Includes AddHandler server-parsed .html .htm <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilter DEFLATE .shtml </IfModule> <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 10 days" ExpiresByType text/html "access plus 1 day" ExpiresByType text/css "access plus 10 day" ExpiresByType text/plain "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/webp "access plus 1 month" ExpiresByType application/x-javascript "access plus 1 month" ExpiresByType application/javascript "access plus 1 week" ExpiresByType application/x-icon "access plus 1 year" </IfModule> # END EXPIRES RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} =http RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
本次调整我移除了R=301参数,取消了永久重定向配置。
目前我已经在所有页面配置了HTTPS协议的canonical标签,因此原本认为无需额外在.htaccess中配置重定向。
但当前站点仍然无法加载styles.css、Google Fonts资源,同时页面内嵌的JS手风琴组件也无法正常执行,该问题十分反常。
我已经联系了我的主机服务商1&1,要求他们协助刷新.htaccess配置,同时我也将调研Cloudfare相关配置排查问题。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

