2013-05-02 67 views
0

我一直在嘗試幾種方法來優化當我的site的數據庫被諮詢,改變.htaccess在頂部添加一些php,以及其他一些包含這兩種方法的結果,但沒有任何反應,網絡上有很多種方式,但我感覺不幸和無力嘗試實現這些方式,我無法使其工作。使用php進行URL優化

產品目錄在MySql DB中以非常流行的方式組織,沒有任何革命性或獨特的$ _GET方法,就是這樣,您得到了用戶點擊的部門,類別或產品。你能給我一些幫助嗎?它對於高級開發人員來說是基本的,但顯然我不是其中之一。在此先感謝您的時間!

的的.htaccess代碼在這裏:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule testpage\.html http://www.google.com [R] 
RewriteRule ^catalog/(\d+) catalogo.php?cat=$1 [L,NC] 
RewriteRule ^department/(\d+) catalogo.php?dpto=$1 [L,NC] 
RewriteRule ^producto/(\d+) producto.php?id=$1 [L,NC] 
</IfModule> 
+0

我不知道是否有一個簡單的方法來解釋htaccess的,但很可能會改變一個最無痛的方法從yoursite.com?category=1到像yoursite.com/category/1這樣的網址 - 這裏有很多教程。你只需要耐心,並按照說明 – 2013-05-02 16:54:34

+0

你有一些指示鏈接訪問和關注?我儘可能耐心,但是太多的信息和我瘋了,每個教程都有不同的說法,並且在某些情況下,除了我之外,它似乎適用於所有人...感謝您的回答,並感謝您閱讀我的時間題。 – JeanR 2013-05-02 17:10:53

+0

告訴你什麼 - 你舉了一個url的例子,我們可能會告訴你一個基本的htaccess規則來應用它。 – 2013-05-02 18:06:10

回答

0
RewriteEngine On 
RewriteRule ^catalog/(\d+) catalog.php?cat=$1 [L,NC] 

這是一個基本的正則表達式匹配的類別(\ d +) - 任何數字 - 並將其映射到category.php貓=那麼$ 1表示什麼?例如插入第一個括號(6)中找到的數字。

RewriteRule ^department/(\d+) catalog.php?dpt=$1 [L,NC] 

這將爲部門工作。

你可以把任何你在url喜歡,你應該決定要更具體 -

RewriteRule ^catalog/department/(\d+) catalog.php?dpt=$1 [L,NC] 
RewriteRule ^catalog/category/(\d+) catalog.php?cat=$1 [L,NC] 

記住,RewriteEngine On必須在.htaccess中設置任何規則之前。

通常情況下,整個事情被包裹在一個條件,像這樣:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteRule ^catalog/department/(\d+) catalog.php?dpt=$1 [L,NC] 
    RewriteRule ^catalog/category/(\d+) catalog.php?cat=$1 [L,NC] 
</IfModule> 
+0

首先,我想感謝你的回答,我試着但我不能讓它工作,我只是不知道我做錯了什麼,或者我錯過了什麼...我希望我可能會得到類似www.mysite.com/catalog/hammers/的東西,但不管它仍然會得到相同的複雜網址。 – JeanR 2013-05-03 00:09:46

+0

¿有可能我的網站不適合做這種網址優化? – JeanR 2013-05-03 00:23:27

+0

有可能mod_rewrite沒有啓用。此外,catalog/hammers /不符合此答案中概述的規則。它期待着一個數字。你必須讓你的php代碼從數據庫中拉出來,以便你的錘子URL工作。然後你將\ d +替換爲\ w + – 2013-05-03 00:42:01