我正在使用Isapi Rewrite for IIS,我想为动态产品页面制作SEO友好的URL。
我需要在两个查询字符串参数中以不同方式替换空格。
在第一个参数中,\ s应替换为+ 在第二个中,所有\ s应该替换为 -
#seo. 2 conditions. split on _ delimiter.
RewriteRule ^Store/([^_]+)_([^/]+) Store/Details.aspx?id=$1&name=$2 [QSA,NC]
#replace spaces with + in first condition (doesn't work)
#RewriteRule ^Store/([^\w\s]+)\s(.+)$ Store/Details.aspx?id=$1+$2 [QSA, NC]
#replace spaces with dash in second condition ???
实施例
Store/NP SP_name name
//$1: NP+SP
//$2: name-name
// output: Store/NP+SP_name-name
Store/mn%2098%20765_name%20name%20name
//$1: mn+98+765
//$2: name-name-name
//output: Store/mn+98+765_name-name-name
答案 0 :(得分:0)
前几天我已经完成了这样的事情,但是只有一种替代方式,这是一项简单的任务。尝试使用以下内容进行基本重定向(如果有效,我们会考虑更复杂的多参数方案):
RewriteRule ^Store/(.+)\s([^_]+)_(.+)\s(.+) /Store/$1+$2_$3-$4 [NC,R=301,L]
确保放在现有的重写之上。