2012-04-27 27 views
0

我該怎麼做?關於這個問題有很多話題,但我嘗試了所有這些話題,但都沒有成功。有人可以給我一個詳盡而廣泛的答案,因爲我幾乎沒有使用.htaccess的經驗。如何將site.com/index.php?p=xxx轉換爲site.com/xxx/

謝謝!

+1

使用Apache重寫規則 – vvr 2012-04-27 10:42:27

+0

htaccess mod重寫 – 2012-04-27 10:43:23

+0

有很多很多的教程 - 關於Google的關鍵詞是[「search engine friendly urls」](http://www.google.com/search?q=search+engine+friendly+urls) – DaveRandom 2012-04-27 10:43:39

回答

1

從頭腦,所以可能需要一些調整

RewriteEngine on 
RewriteRule ^([^.]*)/?$ index.php?p=$1 [L] 

這將(內部!)發送到site.com/xxx /site.com/index.php?p=xxx

所以你可以做的index.php任何你想要用$ _GET [「p」],你通常會做,但用戶將看到該網站爲index.site.com/xxx

+0

謝謝。這工作,但有沒有辦法讓它的工作有或沒有尾隨斜線? 另外,相反的規則是什麼?如果人們填寫index.php?p = xx,他們會自動發送到/ xx /? – user1306458 2012-04-27 10:55:27

+0

以及,我將如何更改page.php?cat = x&page = 3&sortby = bla到/ page/x/3/bla /? – user1306458 2012-04-27 10:57:01

+0

與上面的解決方案,site.com/page/x3/bla將被內部重寫爲site.com/index.php?p=page/x3/bla所以通過爆炸('/',$ _GET ['p '])你得到所有的參數。只要確保你的url結構是一致的。你可以寫一個類似的RewriteRule來處理URL的url = ...但是沒有真正的理由。 – Johan 2012-04-27 12:06:07

1
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule (.*)/ index.php?p=$1 
相關問題