2012-01-04 88 views
13

我需要爲我的網站創建適合搜索引擎優化的網址。我發現我可以使用.htaccess來重寫它們。所以,我想這一點:.htaccess使用mod_rewrite的新手問題

> http://www.domain.com/page/1/mypage 
> http://www.domain.com/user/2/myuser 
> http://www.domain.com/help/3/myhelp 

現在我堅持一個共同的規則,我不明白Ant來基於頁面的名稱將流量重定向:

我用:

RewriteEngine ON 
RewriteRule ^(.*)$ page.php?page=$1 

然後在我的PHP中,我沒有正確地得到頁面,我得到的文件是錯誤的。

我該如何解決這個問題?

+0

獲得更多的信息對於一個良好的開端,檢查這個在線工具http://www.webconfs.com/url-rewriting-tool.php看到你的網址,如何進行管理。它會生成你的.htaccess代碼。 – Arfeen 2012-01-04 12:03:24

回答

17

這裏就是你需要做的:

RewriteEngine On 
RewriteBase/
RewriteRule ^([a-z_\-]+)/([0-9]+)/([a-z_\-]+)/?$ page.php?page=$1&id=$2&name=$3 [NC,L] 

NC(或NOCASE)使測試不區分大小寫,A = A;

L(或最後)最後一條規則。停止重寫過程,不要再應用任何重寫規則;

您可以在http://httpd.apache.org/docs/current/mod/mod_rewrite.html

+0

我看到了差異,讓我試試,爲什麼NC和L? – Marty 2012-01-04 12:01:45

+3

'NC' *無*,即不區分大小寫。 'L'是* last *,意思是規則處理將停止,如果這個規則匹配 – 2012-01-04 12:02:46

+0

我更新了我的答案 – 2012-01-04 12:04:01