2013-08-20 28 views
2

我想在我的站點上使用.htaccess文件中的Rewrite腳本在Apache服務器(Fasthosts)上託管的子頁面實現301。我試圖遵循許多文件(事實上,我從來沒有遇到任何問題,實施301使用.htaccess之前!),但在這個特定的網站,似乎沒有任何工作。請看看這個.htaccess文件

目前有一個301重新在那裏從非www到www這是工作正常。還有一些使用正則表達式的片段,我認爲這是針對CMS的。

以下是.htaccess文件的當前狀態。一個301的一個例子,我試圖重新直接就在那裏(第5行& 6)

舊頁:http://www.junkwize.com/home-Garden%20Clearance 新頁:http://www.junkwize.com/services/garden-clearance-london

.htaccess文件:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^junkwize.com 
RewriteRule (.*) http://www.junkwize.com/$1 [R=301] 

RewriteCond %{HTTP_HOST} www.junkwize.com/home-Garden%20Clearance 
RewriteRule (.*) http://www.junkwize.com/services/garden-clearance-london [R=301] 

#Options +FollowSymlinks 
RewriteRule ^.htaccess$ — [F] 

RewriteRule ^([/admin]+)$ admin/login.php [L] 
RewriteRule ^([/admin]+)([/blocks]+)$ admin/login.php [L] 

RewriteRule ^([/blocks]+)$ index.php [L] 
# RewriteRule ^([^/\.]+)-([^/\.]+)-([^/\.]+)$ index.php?main=$1&id=$2&menu=$3 [L] 
RewriteRule ^([/deals]+)-([^/\.]+)$ index.php?main=$1&id=$2 [L] 

# RewriteRule ^([^/\.]+)-([^/\.]+)$ index.php?main=$1&leftmain=$2 [L] 
RewriteRule ^([^/\.]+)/([^/\.]+)$ index.php?main=$1&leftmain=$2 [L] 
RewriteRule ^([^/\.]+)$ index.php?main=$1 [L] 

任何幫助將不勝感激。

非常感謝。

回答

0

此代碼是錯誤的,而不是去上班:

RewriteCond %{HTTP_HOST} www.junkwize.com/home-Garden%20Clearance 
RewriteRule (.*) http://www.junkwize.com/services/garden-clearance-london [R=301] 

原因是RewriteCond %{HTTP_HOST}只能匹配主機名。這種替換代碼:

RewriteRule ^home-Garden\ Clearance/?$ /services/garden-clearance-london [R=301,L,NC] 
+0

感謝@anubhava ......我已經取代: '的RewriteCond%{HTTP_HOST} www.junkwize.com/home-Garden%20Clearance 重寫規則(*)的http:/ //www.junkwize.com/services/garden-clearance-london [R = 301]' With: 'RewriteRule^home-Garden%20Clearance /?$/services/garden-clearance-london [R = 301, L,NC]' 仍然沒有運氣。會不會有其他問題呢? – AmitMegaTherion

+0

立即嘗試編輯的代碼。 – anubhava