2012-05-23 89 views
0
去擴展名

我的網站有500個多動態頁面和我有使所有靜態的(相同)的網頁,並通過使用htaccess文件以下規則重定向舊的URL或新的URL:與重定向

RewriteCond %{QUERY_STRING} ^cid=2&gas=nitrogen$ 
RewriteRule ^purity\.php$ http://Example.com/gases/nitrogen.php? [R=301,L] 

和使用此代碼爲我所有的頁面都是現在靜態的URL

,現在我希望把它http://www.Example.com/gases/nitrogen(不包括擴展名),爲了這個,我已上載這是慣例:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^\ ]+)\.php\ [NC] 
RewriteRule^/%1 [R=301] 

這段代碼實際上是將我的php頁面重定向到非php頁面,但有404錯誤。

我無法弄清楚這個問題。

請幫忙!!

+0

嘗試'Options + MultiView' – Gerben

回答

0

您正在嘗試做什麼存在問題。你必須瞭解重寫如何工作。你正在讓你的網絡服務器提供一個不存在的頁面。所以通過發送一個更好的SEO'd一個醜陋的網址,你說好的服務器給我這個頁面。如果頁面本身不存在,那麼服務器吐出一個404錯誤。您的重寫應該來自您希望他們重定向到您的舊頁面名稱而沒有[R]參數的頁面,以便您的服務器知道,不要給這個頁面,給其他頁面,也不要讓他們知道它是通過顯示其他網址來完成,這就是刪除[R]所做的。然後爲了防止無盡的重定向循環,不要將醜陋的頁面名稱重定向到新的名稱。相反,只需顯示重定向的網址,而不是醜陋的網址,並顯示所有那些難看的參數。然而,由於您可能已被編入索引並且搜索引擎知道醜陋的頁面,因此我建議您不要再鏈接到這些頁面,並在所有頁面上使用新的頁面名稱來導航和引用其他頁面等內容。我會在您的網頁上添加標準元標記,告訴Google和其他搜索引擎您的首選網址是什麼。如果你沒有任何搜索引擎開始瞭解你的url結構,那麼你可以使用規範元標籤跳過所有這些參數,因爲如果你總是使用重寫,那麼搜索引擎就不會知道你的頁面。