[英]htaccess rewrite specific parameter with dot
我有一个重写网址的问题,例如:
http://examplepage.com/news/?aid=n_557eb95ed07360.45147988
至
http://examplepage.com/some-other-name
但是,如果参数更改,则仅需使用此url,否则它什么也不做。 我认为问题是参数中的点?
我当前对此问题的.htaccess如下所示:
RewriteCond %{QUERY_STRING} ^aid=n_557eb95ed07360.45147988$
RewriteRule ^news/$ /some-other-url [NC,L]
任何帮助表示赞赏。 谢谢。
用\\.
转义点\\.
匹配文字点,而不是“任何字符”。
一.
表示在正则表达式中“ 匹配任何字符 ”,因此
/^aid=n_557eb95ed07360.45147988$/
将匹配
aid=n_557eb95ed07360.45147988
aid=n_557eb95ed07360045147988
aid=n_557eb95ed07360145147988
aid=n_557eb95ed07360245147988
...
但
/^aid=n_557eb95ed07360\.45147988$/
只会匹配
aid=n_557eb95ed07360.45147988
演示: Regex101
正如Drakes所说,在点上添加转义符可以解决问题。
RewriteCond %{QUERY_STRING} ^aid=n_557eb95ed07360\.45147988$
RewriteRule ^news/$ /some-other-url [NC,L]
或者,如果aid
将是动态的,则可以使用:
RewriteCond %{QUERY_STRING} ^aid=(.*)$
如果要搜索aid
,则查询的任何部分:
RewriteCond %{QUERY_STRING} !(^|&)aid=(.*)$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.