php
  • seo
  • 2015-06-21 37 views 1 likes 
    1

    我有一個表鞋(id,shoename,顏色,品牌,價格,imagename,可用)。我試圖通過我的網站在線銷售鞋子。目前發生的事情是,catalog.php(我網站上的一個頁面)顯示了我的餐桌上的所有鞋子。這是循環內的代碼。不同的地址爲不同的產品

    echo "<div class='shoe-view'>"; 
    echo "<img class='show-view-image' src='scripts/shoes/uploads/".$result["imagename"]."' alt='".$result["imagename"]."'/>"; 
    echo "<form action='viewshoe.php' method='post'>"; 
        echo "<button value='".$result["id"]."' name='messagebutton' class='send-message'>View Shoe</button>"; 
        echo "<input value='".$result["shoename"]."' name='shoename' type='hidden'/>"; 
    echo "</form>"; 
    echo "</div>"; 
    

    隨着每一隻鞋,有一個按鈕,查看鞋,這個按鈕引導到viewshow.php(在我的網站的另一頁),顯示所有關於鞋子的細節。下面是它的外觀:

    echo "<div class='shoe-view'>"; 
        echo "<img class='show-view-image' src='scripts/shoes/uploads/".$result["imagename"]."' alt='".$result["imagename"]."'/>"; 
    
        echo "<p class='sub-heading desc catalogfont' style='color:rgb(184, 55, 60);'>".$result["shoename"]."</p>"; 
        echo "<p class='content catalogfont' style='font-weight:bold;'>".$result["price"]."</p>"; 
        echo "<p class='content catalogfont' style='font-weight:bold;'>".$result["Color"]." : ".$result["brand"]."</p>"; 
        echo "<form action='buyshoe.php' method='post'>"; 
        echo "<button value='".$result["id"]."' name='messagebutton' class='send-message'>Buy Shoe</button>"; 
    
        echo "</form>"; 
    echo "</div>"; 
    

    這是我的問題:像flipkart.com這樣的電子商務網站在他們的網站上有不同的地址。 訪問http://www.flipkart.com/mens-footwear/casual-shoes/pr?sid=osp%2Ccil%2Ce1f&otracker=hp_nmenu_sub_men_0_Casual+Shoes,並且在打開產品時看到所有項目都有不同的地址。這種做法適用於共享產品和搜索引擎優化。我不確定我如何爲每個產品獲得不同的地址。在上傳過程中是否創建了不同的php(例如shoe1.php)文件,並使用viewshoe.php重定向到我的shoe1?因爲目前我所有的鞋子都有一個地址,viewshoe.php。

    +0

    爲什麼在重新發明輪子的同時還有這麼多的開源網上商店解決方案? – RST

    回答

    1

    您是否熟悉在PHP中使用$_GET查詢字符串變量?你會簡單地做到這一點:

    echo '<a href="shoepage.php?shoe_id='.$result['id'].'">'.$result['shoename'].'</a>'; 
    

    然後在shoepage.php從相匹配的ID數據庫中讀取的鞋。爲了更好的搜索引擎優化,你毫無疑問要使用鞋子的名字(可能規範化爲URL友好,如?shoe=funky-seven-shoes)而不是數據庫ID;爲這些創建一個新列。

    爲了獲得更大的SEO,你會想看看URL重寫(使用.htaccess & mod_rewrite),以獲得像/shoe/funky-seven-shoes的URL映射到shoepage.php?shoe=funky-seven-shoes等。這裏是一個例子的.htaccess重寫規則(假設你的鞋URL標識只有人物a-z, A-Z, 0-9,下劃線和破折號,根據需要修改):

    RewriteEngine on 
    RewriteBase/
    RewriteRule ^shoe/([a-zA-Z0-9_-]*)$ shoepage.php?shoe=$1 
    

    您還可以使用GET方法,而不是POST在表單中有查詢字符串的地址欄中可見。對於所有未明確請求更改服務器/數據庫狀態(即插入,更新或刪除)的請求,GET都是推薦的方法。

    +0

    謝謝,是的,我熟悉PHP中的$ _GET查詢字符串,我不熟悉的是mod_rewrite!再次感謝。 – user3783952

    +0

    @ user3783952快樂的學習。我已經添加了一個樣例.htaccess文件來完成重寫。如果你想在URL中添加類別等,那麼你需要更多的工藝;如'重寫規則^鞋/([A-ZA-Z0-9 _-] *)/([A-ZA-Z0-9 _-] *)$ shoepage.php?類別= $ 1鞋= $ 2'。 –

    0

    您的方法是各種錯誤,但要回答您的問題:不要將您的鞋號發佈到viewshoe.php,而是使用GET;並使用服務器重寫規則來重寫URL。

    因此,例如,鞋可能在example.com/viewshoe.php?id=big-red-shoe。使用以下.htaccess重寫規則,您將可以訪問鞋號example.com/shoes/big-red-shoe

    RewriteRule ^shoes/([^/]*)/?$ /viewshoe.php?id=$1 [R=301, L] 
    
    +0

    您能否告訴我在實施此類系統時採用何種正確的方法? – user3783952

    +0

    首先,重塑車輪幾乎不是一個好主意。有很多開源系統可以做到這一點。對我而言,有些事情是:你似乎沒有將演示文稿與業務邏輯分開;系統的一個入口點將更合適;就像使用某種路由器路由到您的頁面控制器一樣;當然,按照它的意圖使用HTTP會更好。如果你有興趣,我可以指出你正確的方向讀一些好的閱讀材料。 – PiranhaGeorge

    相關問題