当前位置: 首页 > 知识库问答 >
问题:

搬到https://www,当它是www或http://或没有www和http://时?

梁才
2023-03-14

我使用的是Zend框架,我有漂亮的url控制器。下列的htaccess正在工作,但它使SEO将我们视为一个页面的四个链接。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]

我需要做以下修复使用htaccess:

www.stackoverflow。com/好看的url=https://www.stackoverflow.com/nice-looking-url

堆栈溢出。com/好看的url=https://www.stackoverflow.com/nice-looking-url

http://www.stackoverflow.com/nice-looking-url = https://www.stackoverflow.com/nice-looking-url

http://stackoverflow.com/nice-looking-url = https://www.stackoverflow.com/nice-looking-url

如何正确使用htaccess?因此,上述输入网址是安全着陆与https://www.在前面总是?

共有1个答案

松桐
2023-03-14

吃得饱饱的。htaccess是这样的:

RewriteEngine On

## add www and turn on https in same rule - main domain
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(example\.com)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]

## turn on https in same rule - sub domain
RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

确保使用新浏览器测试更改以避免旧浏览器缓存。

 类似资料:
  • 问题内容: 为什么如果我在www.example.com上创建cookie并在example.com上进行检查,为什么该cookie不存在?我打算只使用将非www重定向到www域。但是我该如何解决呢? 问题答案: 浏览器是这里的罪魁祸首,而不是PHP。它们按域存储,不知道这是特例。从他们的角度,并有不同的字符串,因此具有不同的安全策略。但是,您可以做一些事情。 设置cookie时,请使用(带前导点

  • 我的一个域也有类似的问题。我为裸域和www域都安装了SSL证书。 现在,然而我想把裸体http://domain.com和https://domain.com都重定向到https://www.domain.com. 我在我的.htaccess中有这个规则,但当您使用https://domain.com,但是,当访问时http://domain.com,它重定向到http://www.domain.

  • 我在linode上运行一个rails应用程序。我在ubuntu上使用nginx,并且成功地为两个域(www和非www)创建了一个certbot证书 这是我启用的nginx配置文件的内容 我想将所有流量重定向到https://heimlichhamburg.dehttps://non-www.com. 在我为非www域添加另一个证书之前,该证书一直适用于www。现在我在www中收到一个错误,并且。

  • 好吧,我恨死它了。我已经想解决这个问题几个小时了,但我还是不知道是不是错了,或者我错过了什么。 我有这个代码: 它会将http请求重定向到https,但每当我键入domain.com时,它都会重定向到https://domain.com,并抛出一个ssl错误: 这可能不是你要找的网站!您试图访问域。但实际上您到达了一个服务器,该服务器的名称为www.domain.com。这可能是由于服务器配置错误

  • 我需要执行以下操作:我当前的地址如下所示:https://www.domain.com 我想用htaccess:www.domain重定向。通信https://www.domain.com和http://domain.com到https://www.domain.com 我在这里尝试了一些建议,但最终还是没完没了的循环。我试过: 任何帮助都将不胜感激。 更新:我想我已经做到了以下几点: 这样做对吗

  • 我有以下htaccess代码: 我希望我的站点被重定向到使用HTTPS,并强制执行子域,但当我访问(没有HTTPS),它不会将我重定向到使用HTTPS。