通过.htaccess 我想301将URL中的参数“pathval”重定向到“路径”,例如:
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
到:
index.php?a=1&b=2&pathval=a_text_string&c=3
甚至更好:
index.php/a_text_string
如果“pathval”是唯一的网址参数,我找到了许多此重定向的解决方案。
但是当QUERY_STRING中包含其他参数且所有参数可以按任意顺序而可能包含任何参数时,我无法获得它的价值值
所谓可能的电话(1)可能是:
如果有人能为所有可想到的案例提供一般解决方案,我会很高兴。
(1):在我的示例中,为了获得更好的可见性,其他参数a,b,c都是数字,但这不是规则。也可能包含字符串或甚至是空的。
答案 0 :(得分:1)
您可以对问题中描述的所有案例使用此通用规则:
RewriteEngine On
RewriteCond %{THE_REQUEST} \?(.*&)?pathval=([^&]*)&?(\S*)\sHTTP [NC]
RewriteRule ^index\.php$ %{REQUEST_URI}/%2?%1%3 [R=302,NE,L]
要删除&&
或引导/尾随&
,请使用以下规则:
RewriteCond %{QUERY_STRING} ^&|&&|&$
RewriteCond %{QUERY_STRING} ^&?(.*?)(?:&&(.*))?&?$
RewriteRule ^ %{REQUEST_URI}?%1&%2 [R=302,NE,L]