我有一个购物车,每个产品的网址太多。每个产品可以有例如:
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]