2012-12-31 16 views
1

朋友舊的URL,這對我來說是一個複雜的問題。我已經研究了很多次,終於找到了你(希望我能得到解決方案)。我們有產品的URL,如:如何重定向也沒有任何塞新一個具有塞

 
/product_info.php/products_id/75 

按照SEO,我想關鍵字豐富的URL所以,我們加入products.php文件蛞蝓和修改網址爲:

 
/product_info.php/products_id/75/product-title 

但它也沒有一個理想的網址。我想這是:

 
domainname.com/products/product-title/75 

變化我在.htaccess文件作出如下 -

RewriteRule ^products/([A-Za-z0-9-]+)/([0-9]{2})/?$ product_info.php?products_id=$2=$1 [L] 
RedirectMatch 301 ^/product_info.php/products_id/([0-9]{2})/([A-Za-z0-9-]+)$ http://www.livevaastu.com/products/$2/$1 

現在的問題是 - 我們的舊網址(沒有蛞蝓)由谷歌進行索引。我不知道如何將這些舊的重定向到新的。還有很多產品頁面,所以我無法一一重定向。你們是天才。你能幫助我嗎? (沒有笑我)。 M不是開發人員。

回答

0

您無法從舊產品/product_info.php/products_id/75的URL中產生product_info.php?products_id = $ 2 = $ 1,因爲它們沒有產品標題(「slug」)。

一方面product_info.php?products_id = $ 2 1 = $沒有任何意義。這是一個錯字嗎?該查詢字符串中的鍵/值對是什麼?這應該是這個樣子products_id = $ 1 & PRODUCT_TITLE = $ 2,其中從mod_rewrite的比賽每一個派生的「價值」被分配到一個已知的「鑰匙」,有些東西你可以在使用$ _GET或$ _REQUEST找到價值。

編輯,以幫助什麼,我認爲你正試圖在這裏實現的基礎上,討論:

如果你希望你的舊網址將導致新的「漂亮」的網址,則需要使用PHP去做這個。如前所述,URL中沒有足夠的信息來發明產品名稱。但是你可以很容易地在每個頁面的頂部(即在一個頭文件中)看看是否存在「標題」$ _GET參數(一旦你清理了雙等號並用正確的鍵/值對)。這可能看起來像這樣:

<?php 
if(!isset($_GET['product_title'])) { 

    // Code here to look up $product_title from the $product_id, presumably in a DB 

    header("HTTP/1.1 301 Moved Permanently"); 
    header("Location: /products/$product_title/$product_id"); 
    exit(); 
} 
+0

感謝您的信息,德文。實際上,'products_id = $ 2 = $ 1'中的密鑰對包含slug和id。正如我所提到的,我希望URL看起來像 - domainname.com/products/product-title/75(爲此我在上面給出的.htaccess文件中添加了一些行)。但令人頭疼的是 - 我無法將舊的(沒有slu))重定向到這些新的Url。請更新我,如果它造成任何混淆。問候。 –

+0

我的困惑是你連續有兩個等號。這裏沒有鍵/值對。我期望products_id = $ 1&product_title = $ 2,因爲它實際上具有鍵/值對。而且您不需要將舊網址重定向到新網址。那裏沒有任何意義。您需要將舊網址重定向到他們以前重定向到的新地點 - 正確的內容。 –

+0

謝謝德文,很有幫助。我會檢查它並回復給你。 –