.htaccess重写以应对先前的链接挑战

时间:2019-01-18 23:10:34

标签: php apache .htaccess

我的网站链接曾经被.htaccess修改过,但由于我拥有新系统,链接已更改

以前我做过这样的链接

http://example.com/1/computers/12/32/4003_apple_iphone_xr_reviews.html

在此链接中,“ 1”是国家/地区ID;“ 12”是类别ID;“ 32”是子类别ID;“ 4003”是页面ID;“ apple_iphone_xr”是页面标题。

在新系统中,链接是这样的

http://example.com/1/4003.html

其中“ 1”是国家/地区ID,“ 4003”是页面ID。

我想知道是否有解决方案将旧URL重定向到这些新URL?

1 个答案:

答案 0 :(得分:0)

在.htaccess中尝试以下重写规则:

RewriteEngine On

#define the base url
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ 
RewriteRule ^(.*) - [E=BASE:%1] 

#redirect browser to a new url with 301 status
RewriteRule ^(\d+)\/computers/\d+\/\d+\/(\d+).* %{ENV:BASE}/$1/$2.html [L,R=301]

#rewrite url for php
RewriteRule ^(\d+)\/(\d+)\.html$ index.php?view=product&id=$2&country=$1 [QSA]