在.htaccess中为文件夹创建301重定向到子域并将www重定向到非www

时间:2012-02-03 10:31:27

标签: .htaccess redirect subdomain no-www

我到处搜索并使用了一些例子,但它们不能满足我的特定需求,因此我在这里询问是否有人可以请求帮助?我知道下面的http ::不正确,只是因为我不能在这里发布链接。

我想将http :: //www.mysite.co.uk/重定向到http :: //mysite.co.uk/ 同时能够重定向

  1. HTTP :: //www.mysite.co.uk/mysub/ 和2. http :: //mysite.co.uk/mysub/ 到3. http :: //mysub.mysite.co.uk/
  2. 1.和2.中的所有文件都应重定向到3中的equivelant。

    例如:http :: //www.mysite.co.uk/mysub/file.html AND http :: //mysite.co.uk/mysub/file.html都应该转到http :: // mysub.mysite.co.uk/file.html

    这只会影响子域名,因此站点根目录中的其他文件夹和文件不会受到影响。

    如果有人可以帮助我理解并编写.htaccess文件中301重定向的代码,我真的很感激!谢谢!

1 个答案:

答案 0 :(得分:0)

这是.htaccess文件中您需要的代码:

Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteBase /

# To redirect http:://www.mysite.co.uk/ to http:://mysite.co.uk/
RewriteCond %{HTTP_HOST} ^www\.(mysite\.co\.uk)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

# To redirect /mysub/foo to http://mysub.mysite.co.uk/foo
RewriteCond %{HTTP_HOST} ^(www\.)?(mysite\.co\.uk)$ [NC]
RewriteRule ^(mysub)/?(.*)$ http://$1.%2/$2 [R=301,L,NC]