2011-08-09 111 views
1

我在Google中有一些舊的索引頁面需要重定向到他們的新位置。例如:Google顯示wwww.domain.com/pages/subpages/page.php現在在www.domain.com/pages/page.php通過url重寫舊索引頁面

我還需要當有人點擊Google中的舊頁面時打開重寫的URL。 例如:用戶點擊wwww.domain.com/pages/subpages/page.php,它會打開他wwww.domain.com/pages/page.php,但在地址欄中有www.domain.com/page(沒有「pages /」和php擴展名)。

所以我寫了這個的.htaccess代碼

Redirect 301 /pages/subpages/page.php http://www.domain.com/page 
RewriteEngine On 
RewriteRule ^page/?$ /pages/page.php 

重定向工作,但用戶在地址欄中完整的URL(http://www.domain.com/pages/page.php),而不是重寫一個(http://www.domain.com/page)。它看起來像mod_rewrite不適用於重定向或什麼。

有沒有解決方法?

+0

1)你能確保mod_rewrite被實際啓用嗎?如果你訪問'www.domain.com/page',它是否顯示你的頁面..或者給出錯誤? 2)你還有別的重定向/重寫規則嗎(另一個.htaccess文件在'/ pages /'子文件夾等)? – LazyOne

+0

是的,mod_rewrite已啓用。當我通過在瀏覽器http://www.domain.com/page輸入此地址訪問頁面時,它確實有效。它只是在重定向後不起作用。 – Radovan

+0

2)不,我沒有任何其他。只是這個.htaccess在根文件夾中我提供了 – Radovan

回答

1

此代碼正常工作對我說:在你的htaccess文件

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/

# 301 redirect 
RewriteRule ^pages/subpages/page\.php$ http://www.domain.com/page [R=301,L] 

# rewrite 
RewriteRule ^page/?$ /pages/page.php [L] 

請確保您有沒有其他的重定向/重寫,因爲它們可能會執行額外的重寫/重定向行爲。

+0

當我把它放在htaccess中時,它崩潰了整個頁面,並且內部服務器錯誤 – Radovan

+0

內部服務器錯誤 服務器遇到內部錯誤或配置錯誤,無法完成您的請求。 請聯繫服務器管理員[email protected],並告知他們發生錯誤的時間以及可能導致錯誤的任何事情。 有關此錯誤的更多信息可能在服務器錯誤日誌中可用。 – Radovan

+0

錯誤日誌尚不可用 – Radovan