.htaccess 规范的https和www
如果这对某些人来说很简单,我会道歉 在过去,我使用遍布互联网的代码片段设置了301重定向:.htaccess 规范的https和www,.htaccess,mod-rewrite,redirect,https,http-status-code-301,.htaccess,Mod Rewrite,Redirect,Https,Http Status Code 301,如果这对某些人来说很简单,我会道歉 在过去,我使用遍布互联网的代码片段设置了301重定向: Options +FollowSymlinks RewriteEngine on rewritecond %{http_host} ^domain.com [nc] rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc] 然而,有几件事让我对这个特殊的项目感到不确定 1) 我使用的是https,所以现在有四个CName(这是(CName)正确的术语吗
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
然而,有几件事让我对这个特殊的项目感到不确定
1) 我使用的是https,所以现在有四个CName(这是(CName)正确的术语吗?)
2) 我使用的CMS需要.htaccess文件,以便在运行网站时搜索CSS和其他信息。因此,作为一个技术含量较低的人,我担心篡改.htaccess文件(当该文件因另一个问题丢失时,该网站无法正常运行)
问题:
1) 我将重定向放置在int he.htaccess文件的位置是否重要?文件的开始/结束?
2) 我如何修改上面的代码段以考虑https
这是.htaccess代码
# Turn on URL rewriting only when mod rewrite is turn on
<IfModule mod_rewrite.c>
RewriteEngine On
# Installation directory
RewriteBase /
# Protect application and system files from being viewed
RewriteRule ^(application|modules|system|tests|sql) - [F,L]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php?kohana_uri=$0 [L,QSA]
</IfModule>
# Protect the htaccess from being viewed
<Files .htaccess>
order allow,deny
deny from all
</Files>
# Don't show directory listings for URLs which map to a directory.
Options -Indexes
#Follow symlinks
Options +FollowSymlinks
#仅在启用mod rewrite时才启用URL重写
重新启动发动机
#安装目录
重写基/
#保护应用程序和系统文件不被查看
重写规则^(应用程序|模块|系统|测试| sql)-[F,L]
#允许直接显示现有的任何文件或目录
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
#将所有其他URL重写为index.php/URL
重写规则。*index.php?kohana_uri=$0[L,QSA]
#保护htaccess不被查看
命令允许,拒绝
全盘否定
#不显示映射到目录的URL的目录列表。
选项-索引
#跟随符号链接
选项+FollowSymlinks
将所有请求重定向到http://example.com
,您可以在规则前面加上
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [OR]
RewriteCond %{HTTPS} =on
RewriteRule ^.*$ http://example.com/$0 [R,L]
这将重定向HTTPS或www.example.com
或两者同时提供的所有请求
当一切正常时,您可以将R
更改为R=301
切勿在启用
301
的情况下进行测试,请参阅此答案了解详细信息。也许这会有所帮助。您希望实现什么?HTTPS会发生什么或不会发生什么?@Olaf我希望访问者能够访问一个域名,不管他们使用的是4个变体中的哪一个:谢谢Olaf这很有帮助。只有一个问题-这会被视为301重定向吗?我的理解是,这很重要。@DougFirr请查看更新的答案。好的,谢谢。我很高兴在使用301s时注意到浏览器的攻击性缓存。考虑到这一点,我尝试了你的代码,但似乎有一个问题:如果你访问https://example.com,它不会重定向。所有其他变体都会重定向到example.com。从搜索引擎优化的角度来看,example.com与https://example.com有什么不同吗?再次感谢你的帮助。如果有帮助,可以在这里看到该站点:@DougFirr我刚刚在我的测试环境中尝试了这个,它重定向了所有三个http://www.example.com
,https://www.example.com
和https://example.com
至http://example.com
。日志文件中是否有任何错误消息或其他内容?我相信您已看到您报告的内容!不过,我似乎仍然对其中一个问题感到困扰:似乎没有重定向到example.com?