2010-07-18 39 views
0

我有一個電子商務網站(使用ecommercetemplates購物車PHP模板創建),並且在目錄頁面上有時有幾頁在底部編號。例如,這些頁面的鏈接格式爲: - /product.php?cat=27&pg=2,儘管主頁已被映射到: - /widgets在.htaccess文件中使用重寫規則。使用.htaccess或其他方法調整動態生成的鏈接?

爲了保持一致性和簡潔性,我希望頁面可以像: - /widgets?pg=2。我問在這個論壇如何做到這一點,並找到了以下解決方案: -

RewriteRule ^widgets$ products.php?cat=27 [QSA] 

的問題是,儘管上述重寫規則的工作,因爲我想,目錄頁上的當前鏈接仍然指向,例如: - /product.php?cat=27&pg=2。爲了去/widgets?pg=2,我必須在瀏覽器中輸入。

所以我的問題是:如何更改動態生成的目錄頁上的當前鏈接?是否有任何進一步的規則可以在.htaccess中輸入或有任何其他解決方案來解決這個問題?以下是產品頁面的PHO代碼: - http://freetexthost.com/3ubiydspzm

在上面的鏈接中,如果您搜索'writepagebar',我認爲這是'下一頁','上一頁'和'頁碼'完成的地方。

+0

我可以告訴你,這不能用'.htaccess' /'mod_rewrite'完成 - 這些都是僅用於更改瀏覽器實際請求的URL。你要做的是改變一個HTML頁面的_contents_,爲此你需要改變PHP文件的內容。如果你能識別與'/product.php?cat = 27&pg = 2'鏈接對應的PHP文件的部分,這將有所幫助。 – 2010-07-18 20:22:22

+0

那麼,如果你看看'freetexthost'鏈接: - http://freetexthost.com/3ubiydspzm。在該頁面上,如果您搜索'writepagebar',我認爲這是'下一頁','上一頁'和'頁碼'完成的地方。 – nitbuntu 2010-07-19 04:56:22

回答

0

你有兩個選擇:

他們中的大多數需要不止的.htaccess重寫規則。

  • 您可以修改寫網頁功能,爲您輸出友好的URL。 (並更改可能鏈接到此產品頁面的任何其他功能。)
  • 您可以緩衝整個頁面的輸出並對其進行字符串替換。 (請參閱PHP手冊中的ob_start和ob_get_clean。)
  • 您可以使用301重定向將醜陋的URL重定向到漂亮的URL。 (鏈接將保持不變,但你友好的URL獲得SEO信貸,並在瀏覽器中顯示。)
    • 或者你可以嘗試這個醜陋的mod_rewrite黑客,我不能保證你的服務器或你的應用程序可以工作。 (例鏈接):

哈克

RewriteCond %{QUERY_STRING} (.*)(cat=27\&)(.*) [OR] 
RewriteCond %{QUERY_STRING} (.*)(cat=27)(.*) 
RewriteCond %{THE_REQUEST} !widgets 
RewriteRule ^products.php$ widgets?%1%3 [R=301,L] 

(這可能需要重寫的基本選項)
http://services.rrbits.com/products.php?cat=27&pg=2

+0

我認爲調整寫網頁功能可能值得一試。任何想法如何調整以獲得我想要的結果?我已經在其中一個答案中發佈了代碼。 – nitbuntu 2010-08-05 16:57:45

相關問題