2012-02-03 167 views
2

我到處搜索並使用了一些示例,但它們不符合我的具體需求,因此爲什麼我在這裏問是否有人可以請幫忙?我知道http :: below不正確,只是因爲我無法在此發佈鏈接。在.htaccess中創建一個301重定向到子域的文件夾,並將www重定向到非www www

我想http :: //www.mysite.co.uk/重定向到http :: //mysite.co.uk/ 同時還能夠重定向

  1. http :: //www.mysite.co.uk/mysub/ 和2. http :: //mysite.co.uk/mysub/ to 3. http :: //mysub.mysite.co.uk/

1.和2.中的所有文件都應該被重定向到3中的等值線。

例如: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重定向的代碼,我真的很感激它!謝謝!

回答

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] 
+0

謝謝,這會有所幫助,但有一件事不工作: HTTP :: //www.mysite .co.uk/mysub不會去http :: //mysub.mysite.co.uk/ – P3tro 2012-02-03 12:19:42

+0

嗨,http :: //www.mysite.co.uk/mysub現在只需要你到http :: // mysite.co.uk/而不是它應該的子域名? – P3tro 2012-02-03 14:07:47

+0

噢對不起,我認爲我犯了一個錯誤,沒有做出/可選。再次編輯我的答案,它現在應該工作。請檢查。 – anubhava 2012-02-03 14:20:17