2012-09-27 79 views
2

我建立一個網絡論壇,其鏈接如下:使用htaccess的良好的SEO鏈接

http://127.0.0.1/website/comments.php?topic_id=2/create+good+seo+links 

鏈接生成的鏈接看起來像這樣

<a href="comments.php?topic_id=<?php echo (int)($forum_topic['topic_id']); >/<?php echo urlencode(htmlspecialchars($forum_topic['topic_head'])); > "> 

問:我怎樣才能使鏈接看起來像

http://127.0.0.1/website/comments/topic/create-good-seo-links/2 

我試着在.htaccess文件中使用這個代碼:

RewiteEngine on 
    RewriteBase /website 
    RewriteRule ^comments/([a-zA-Z0-9_-)/([0-9]+)\.php$ comments.php?id=$1 

回答

2

你缺少一個右括號和限制在您的重寫規則[a-zA-Z0-9_\-]+

你也需要,因爲它是相匹配的正則表達式第二個規則的ID指針更改爲$2

+0

如果我改變ID爲2,它可以適用於所有整數?由於這是一個論壇,所以會創建很多主題。 –

+0

你不會將id更改爲2,而是將id更改爲「$ 2」,它將匹配'([0-9] +)'規則。 – AlienWebguy

0

您需要的htaccess的規則是這樣的:

RewiteEngine on 
RewriteRule ^website/comments/([a-zA-Z0-9_-])/([a-zA-Z0-9_-])/([0-9]+)$ comments.php?topic_id=$3 

將友好的URL重定向到正常的腳本文件,$3是第3集重寫規則的第一部分括號(即號碼)。

,那麼你需要將輸出改成這樣:

<a href="comments.php?topic_id=<?php echo $forum_topic['name']; ?>/<?php echo urlencode(htmlspecialchars($forum_topic['topic_head'])); ?>/<?php echo (int)$forum_topic['topic_id'] ?>"> 

注意我是不知道的$forum_topic['name']所以你需要檢查什麼是變量稱爲在你的代碼。

0
RewiteEngine on 
RewriteRule ^subdir/comments/([a-zA-Z0-9_-])/([a-zA-Z0-9_-])/([0-9]+)$ comments.php?topic_id=$3 

如果你想要做良好的SEO採用一些需求關鍵詞在URL 例如 如果您在下載門戶

www.domain.com/games/mobile-os/game-name/id/page.html 

它會幫助你獲得良好的排名在谷歌

+0

謝謝你的回答。如何確保關鍵字是網址的一部分?這是一個論壇,用戶可以用他們想要的標題創建主題。有沒有解決的辦法 ? –

+0

www.domain.com/forum-name/topic-name/by-user/page1.html 這樣的東西 使用** - **而不是** _ ** – Guru