htaccess mod_rewrite 特定 url 结构的表达式
htaccess mod_rewrite expression for specific url structure
我有这样一个 URL-结构:
mypage.com/search/f7_987_Aprilia/f8_1234_Aprilia+RS+125
mypage.com/search/f7_987_Aprilia
mypage.com/search/f8_1234_Aprilia+RS+125
而且我需要它们在内部(无需重定向)路由到以下结构:
mypage.com/search?&f[7]=987&f[8]=1234
mypage.com/search?&f[7]=987
mypage.com/search?&f[8]=1234
我已经走到这一步了:/(f\d+)(\d+).*/
这为我提供了第一组所需的 ID。但是如何获取由斜线分隔的参数呢?我如何“转换”为所需的结构?
htaccess 可以吗?
我希望有天才可以想出所需的 mod_rewrite 正则表达式
提前致谢!
您可以在站点根目录 .htaccess 中使用此代码:
Options -MultiViews
RewriteEngine On
RewriteRule ^search/([a-z])(\d)_(\d+)_[^/]*/?$ search?&[]= [L,QSA,NC]
RewriteRule ^search/([a-z])(\d)_(\d+)_[^/]*/([a-z])(\d)_(\d+)_[^/]*/([a-z])(\d)_(\d+)_[^/]*/?$ search?&[]=&[]= [L,QSA,NC]
我有这样一个 URL-结构:
mypage.com/search/f7_987_Aprilia/f8_1234_Aprilia+RS+125
mypage.com/search/f7_987_Aprilia
mypage.com/search/f8_1234_Aprilia+RS+125
而且我需要它们在内部(无需重定向)路由到以下结构:
mypage.com/search?&f[7]=987&f[8]=1234
mypage.com/search?&f[7]=987
mypage.com/search?&f[8]=1234
我已经走到这一步了:/(f\d+)(\d+).*/ 这为我提供了第一组所需的 ID。但是如何获取由斜线分隔的参数呢?我如何“转换”为所需的结构?
htaccess 可以吗?
我希望有天才可以想出所需的 mod_rewrite 正则表达式
提前致谢!
您可以在站点根目录 .htaccess 中使用此代码:
Options -MultiViews
RewriteEngine On
RewriteRule ^search/([a-z])(\d)_(\d+)_[^/]*/?$ search?&[]= [L,QSA,NC]
RewriteRule ^search/([a-z])(\d)_(\d+)_[^/]*/([a-z])(\d)_(\d+)_[^/]*/([a-z])(\d)_(\d+)_[^/]*/?$ search?&[]=&[]= [L,QSA,NC]