2010-08-01 68 views
0

對於複雜的問題,我很抱歉。我有一個網站,閱讀MySQL數據庫中的內容,以獲取像YouTube一樣的視頻信息。如何使用htaccess從URL中刪除ID變量?

我有7列:標識,標題,desc,網址,日期,whosadded,意見。

我想要做的是重寫從/video.php?id=X的URL對/title-music-video.html

有(http://www.devarticles.com/c/a/Apache/Using-ForceType-For-Nicer-Page-URLs/1/)爲該但htaccess的的ForceType的文章不適合我的作品。

我知道有一種方法爲表格優化鏈接添加新列,但我不想在添加新記錄時指定每個seo網址。

我被困在這一點。

+1

ForceType爲什麼會起作用?無論如何,「改變」是什麼意思?重定向? – Artefacto 2010-08-01 19:30:16

+0

我不知道爲什麼它不工作它總是說404.和我的意思是改變是重寫url – 2010-08-01 19:31:09

+0

你有你當前的.htaccess代碼張貼,所以我們可以嘗試找出你出錯的地方嗎? – 2010-08-01 19:33:35

回答

1

您是否閱讀過整篇文章? ForceType不會爲您神奇地轉換網址......它只會強制將文件作爲特定類型進行投放 - 因此,您的.HTML網址可以被解釋爲PHP。

您的視頻是否存儲在數據庫中?你使用ID來拉他們?在這種情況下,您可以做的是在表格中添加一個額外的列,通常稱爲「slug」,並在其中存儲「artist-song-music-video」的值 - 此列必須是唯一的。如果您認爲自己可能有兩個同名的網頁,請在網址中同時使用ID和插件(例如,如何使用此網站 - 例如,videos/5/artist-song-music-video)。

然後,你實際上做的是重寫URL - /artist-song-music-video.html/video.php?page=artist-song-music-video或類似的東西。然後在您的index.php中,您通常會有一個「路由器」,該路由器需要$_GET['page'],在數據庫中查找slug並顯示正確的內容。

我不記得確切的mod_rewrite規則翻譯這樣的網址,但網上有幾十個教程。去谷歌上查詢。


發生,我認爲artistsong可能是變量。在這種情況下,將「slug」替換爲您現有的兩列「藝術家」和「歌曲」,然後按照這種方式查找。只要砍掉那個「-music-video.html」部分。我真的不知道你的計劃是什麼,所以我不能多說。

+0

我編輯了我的問題。 – 2010-08-01 20:06:35

+0

「我知道有一種方法爲表格優化鏈接添加新列,但我不想在添加新記錄時指定每個seo網址」 - 但他們*提交標題?如果是這樣,只需將標題轉換爲slu;子;無論如何,這就是你應該這樣做的方式。他們不需要輸入任何內容。只需轉換爲小寫字母並替換空格希望破折號。 – mpen 2010-08-01 20:40:48