2012-08-02 26 views
0

我有一個購物車,每個產品都有太多的網址。每個刺可以有例如:使用htaccess修改購物車的網址

http://www.mysite.com/12345_this_is_seo_product 
http://www.mysite.com/this_is_category/12345_this_is_seo_product 
http://www.mysite.com/this_is_category/this_is_subcategory/12345_this_is_seo_product 

我想http://www.mysite.com/12345_this_is_seo_product 所以我假設的事情會殺死.com/和最終/之間的一切清盤。

然而,在導航類的情況下,你可能有:

http://www.mysite.com/this_is_category/this_is_subcategory/ 

你選擇了一個產品,這是可取的了。

這樣就意味着.com和最終/之間一切的剝離只能出現在產品上,並且將產品區別於其它環節的唯一的事情就是產品開始與一些事實,如12345_this_is_seo_product

所以我需要的是一組將.com和最終/,但只有最後/後,當立即之間剝去一切表現的是一組數字(總是四個數字或更多)

希望我做了這個明確沒有太多的混淆說明。

##編輯 - 添加我的htaccess -
Options +FollowSymlinks 

Options -Indexes 


<FilesMatch "\.(tpl|ini|log)"> 

Order deny,allow 

Deny from all 

</FilesMatch> 


RewriteEngine On 


RewriteBase/

RewriteRule ^.+/([0-9]+_[^/]+)$ /$1 [R=301,L] 


RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] 

RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteCond %{REQUEST_FILENAME} !-d 

RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) 

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] 

回答

0

嘗試把你的文檔根這個地方在htaccess文件合適:

RewriteEngine On 
RewriteRule ^.+/([0-9]+-[^/]+)$ /$1 [R=301,L] 
+0

感謝您的答覆。不幸的是,沒有做任何產品的網址。我將包含現在的代碼是htaccess,因爲它需要原始產品url並嘗試使其更友好。我直接放在你重寫後這樣: RewriteEngine敘述在 RewriteBase/ 重寫規則^ $的sitemap.xml的index.php路線=飼料/ google_sitemap [L] 重寫規則^ googlebase.xml $ index.php文件路徑=飼料/ google_base? ![L] 的RewriteCond%{REQUEST_FILENAME} -f 的RewriteCond%{REQUEST_FILENAME} -D- 的RewriteCond%{REQUEST_URI} * \!。(ICO | GIF | JPG | JPEG | PNG | JS | CSS) 重寫規則^ ([^?] *)index.php?_route _ = $ 1 [L,QSA] – Bob 2012-08-03 02:55:35

+0

@Bob您必須在任何路由規則之前添加它(任何重寫爲「index.php」或URI永遠不會達到重定向規則 – 2012-08-03 03:16:23

+0

對不起,應該提到我已經嘗試過它之前和之後。我認爲它應該去的原因是因爲URL是已經從它的動態形式重寫了。我想要做的是改變結果。 對不起,如果上面的帖子是亂碼。該網站一直告訴我,我沒有留下任何字符,所以我不得不刪除線路,以便更容易地查看htaccess文件中發生了什麼。 – Bob 2012-08-03 04:18:39