2013-11-25 25 views
1

目前我的網址是可怕的。 他們就像:我需要重寫所有的網址。我應該把R = 301在RewriteRule?

http://www.racebooking.net/single_news.php?id=211 

,我希望他們能夠更好看,更SEO友好的,像

http://www.racebooking.net/news/video-122.html 

我要通過Apache的.htaccess做到這一點。網上衝浪我發現了許多關於搜索引擎優化的不同觀點。有些人說使用RewriteRule並不好,因爲它會創建重複的內容並殺死網頁排名,但是你必須發送301消息。

問題來了:這是更好地使用

RewriteRule Pattern Substitution 

RewriteRule Pattern Substitution [R=301,L] 

,使我的網址看看沒有我的SEO惡化更好?

回答

1

將此代碼放在您的DOCUMENT_ROOT/.htaccess文件:

RewriteEngine On 

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+single_news\.php\?id=([^\s&]+) [NC] 
RewriteRule^/news/%1.html? [R=301,L] 

# internal forward from pretty URL to actual one 
RewriteRule ^news/([^/.]+)/?$ /single_news.php?id=$1 [L,QSA,NC] 
+0

我承認我不是rlly用正則表達式和htaccess的使用......而且我發現真的很難理解這種邏輯。正如我在這裏注意到的:http://stackoverflow.com/questions/20306229/301-redirect-in-stackoverflow-how-does-it-works(和我很想聽聽你的意見)重定向可以通過PHP來完成,這對我來說更容易。這裏來的問題:對於pagerank和搜索引擎優化是相同的,如果我帶來的PHP文件重定向的邏輯,最大限度地減少.htaccess的複雜性?在這個特定的情況下,我可以設法通過PHP來做到這一點?怎麼樣? –

+0

我建議在PHP代碼之外保留這些重定向規則。這個語法最初可能看起來很古怪,但更容易管理。考慮另一個漂亮的URL要求,這將需要PHP代碼中的另外幾行。重寫邏輯可能會根據不同的安裝情況而改變,在這種情況下,PHP代碼可能需要另一個更改:) – anubhava

相關問題