2012-08-02 27 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