0

我有一个购物车,每个产品的网址太多。每个产品可以有例如:

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 所以我假设要做的事情是杀死介于 the.com/和 final之间的所有东西/

但是,在导航类别的情况下,您可能有:

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]
4

1 回答 1

0

尝试将其放在文档根目录中的 htaccess 文件中的适当位置:

RewriteEngine On
RewriteRule ^.+/([0-9]+-[^/]+)$ /$1 [R=301,L]
于 2012-08-02T22:44:53.667 回答