OpenCart - 中文论坛

标题: opencart不带www跳转到带www网址(301跳转 apache/nginx) [打印本页]

作者: sunboy    时间: 2015-4-22 22:11
标题: opencart不带www跳转到带www网址(301跳转 apache/nginx)
今天给客户调试网站,顺便研究了下301跳转。
应用场景,客户输入不带www的域名跳转到带有www域名的网站
系统区分为apache nginx两种web引擎

环境1:linux,apache
在apache配置文件conf中加入以下代码就好(opencart.cn是你网站上域名),网站必须开启伪静态。
  <Directory /home/wwwroot/opencart.cn>
      在这里添加下面代码
   </Directory>

  1. Options +FollowSymLinks
  2. RewriteEngine on
  3. RewriteCond %{HTTP_HOST} ^opencart.cn
  4. RewriteRule ^(.*)$ [url]https://www.opencart.cn/[/url] [R=permanent,L]
复制代码


或者直接修改根目录下的.htaccess文件,在.htaccess中添加如下内容(将opencart.cn换成你自己网站上域名):
  1. <IfModule mod_rewrite.c>
  2. RewriteEngine On
  3. RewriteCond %{HTTP_HOST} ^opencart.cn$ [NC]
  4. RewriteRule ^(.*)$ https://www.opencart.cn/$1 [R=301,L]
  5. </IfModule>
复制代码



环境2:linux,nginx

需要在nginx的config文件设置
如在/usr/local/nginx/conf/vhost下添加 opencart.conf文件,内容如下(将opencart.cn修改成您的真实域名)

  1. location / {
  2.      if ($host != 'www.opencart.cn') {
  3.              rewrite ^/(.*)$ https://www.opencart.cn/$1 permanent;
  4.      }
  5.      try_files $uri @opencart;
  6. }

  7. location @opencart {
  8.      rewrite ^/(.+)$ /index.php?_route_=$1 last;
  9. }

  10.      location /admin/ {
  11.      index index.php;
  12.      }

  13. location ~* (\.(tpl|ini))$ {
  14.        deny all;
  15. }
复制代码


或者在confg文件开头的地方增加
  1. server {
  2.         listen             80;
  3.         server_name  opencart.cn;
  4.        
  5.        if ($host != 'www.opencart.cn'){
  6.                 rewrite ^/(.*)$ https://www.opencart.cn/$1 permanent;
  7.         }   
  8. }
复制代码


重启nginx,就可以生效




欢迎光临 OpenCart - 中文论坛 (https://bbs.opencart.cn/) Powered by Discuz! X3.2