htaccessredirect/ RedirectMatch与包含特殊/编码字符的URL

目前,我正在为一个最近改变其结构的网站在.htaccess文件中应用各种301redirect。 一切工作正常,除了包含特殊字符的url,对于这些我得到404错误。

例如,以下具有注册商标符号(®)的指令可显示404页:

 RedirectMatch 301 ^/directory/link-with®-special-character(/)?$ somelink.com RedirectMatch 301 ^/directory/link-with%c2%ae-special-character(/)?$ somelink.com 

我也尝试使用RedirectRewriteRule和周围的双引号的url,似乎没有任何工作。

有谁知道可能发生什么事情或处理这些types的指令的正确方法?

任何帮助是极大的赞赏。

我可以确认RedirectMatch的这两次尝试在我的apache安装失败,甚至占用大写(我的日志看到请求link-with%C2%AE-special-character )。

您可能会考虑使用RedirectMatch的正则expression式function,用.*或(似乎适用于我的apache环境)replace商标符号位置,例如

 RedirectMatch 301 ^/directory/link-with..-special-character(/)?$ http://somelink.com 

正如urlencoding %C2%AE ,这个商标符号被解释为两个字符,所以..作为它的正则expression式. 才不是。