将非www重定向到任何tld

时间:2017-11-22 07:51:31

标签: regex apache .htaccess redirect

我正面临一个问题,我的.htaccess从非www重定向到www 我喜欢重定向任何tld域,如.com或.co.uk等。 我正在使用以下解决方案,来自此链接[Redirect non-www to www in .htaccess

# Redirect to www
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

但它只重定向tld与.com / .net等,但无法弄清楚如何更改它,以便它可以抓取任何tld,如.co.uk或.co.in等。

编辑:我也有子域名,所以使用以下规则不会起作用。

RewriteCond %{HTTP_HOST} !^www\.

提前致谢。

2 个答案:

答案 0 :(得分:0)

更新了子域名的答案:

# rule for forcing www on main domain
RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# rule for removing www on sub domains
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.mydomain\.com)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

答案 1 :(得分:0)

你非常接近。您可以使用:

// owl carousel
$(document).ready(function() {
  var slider = $('.owl-carousel');
  slider.owlCarousel({
    items: 4,
    loop: false,
    center: false,
    margin: 10,
    callbacks: true,
    URLhashListener: true,
    autoplayHoverPause: true,
    startPosition: 'URLHash',
    touchDrag: false,
    mouseDrag: false
  });
  $(".swap").click(function() {
    slider.trigger('prev.owl.carousel');
  });
})

如果你有Apache 2.4+,那么你可以使用RewriteCond %{HTTP_HOST} ^[^.]+\.(?:com|co\.uk)$ [NC] RewriteCond %{HTTPS}s ^on(s)| RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 变量:

%{REQUEST_SCHEME}