2016-02-02 24 views
1
forum_id forum_name 
    1  stuff 
    2  stuff 
    3  stuff 

我有上面的表forumforum.php調用它像forum.php?forum_id=?現在我已經寫了mod_rewrite的爲forum.php

RewriteRule ^forum/([0-9]+)$ forum.php?forum_id=$1 [L] 

我的URL看起來像example.com/forum/4後。不過,我想我的網址顯示forum_name而不是forum_idexample.com/forum/stuff。我能爲這件事做些什麼。我會得到forum tableforum_id,因爲它是正確的方法。但是,這一次我將如何知道什麼是寫在內部的東西,並顯示給用戶?我不知道我能否正確解釋。感謝您的幫助

+1

它看起來像你的軟件設置的方式,它是通過'ID'查找論壇名稱。爲了使用/論壇/東西,你必須修改代碼,以便從名稱而不是「ID」在數據庫中查找它。儘管如此,因爲如果有重複的名稱會變得棘手。僅供參考,在URL中使用ID沒有任何問題。看看Stackoverflows的URL。 –

+0

@anubhava我的問題也許它可以顯示'$ _GET ['forum_name']'變量,同時不顯示'$ _GET ['forum_id']' –

+0

@PanamaJack是的,他們基本上像我這樣叫db。但他們如何將「問題名稱」添加到數字附近? –

回答

1

首先,你需要改變你的匹配模式:

# Match anything after "forum/" that's not a slash 
RewriteRule ^forum/([^/]+) forum.php?forum_name=$1 [L] 

在這之後,當然你需要更改數據庫中查詢你的PHP forum_name,而不是forum_id選擇了座談會。

+0

正如我在我的問題中所述我想與'forum_id'調用分貝,但我想顯示'forum_name'對應它。這就是問題所在。 –

+0

@WebberDepor然後,你應該按照[邁克的建議](http://stackoverflow.com/questions/35157694/dont-show-get-variable-in-url-with-htaccess/35158077#comment58034780_35157694),讓你的模板追加' forum_name'到URL。你可以使用你原來的重寫模式(只是擺脫'$')。 – Kontrollfreak