Htaccess-将%23转换为#

时间:2018-11-30 11:18:11

标签: iphone .htaccess linkedin

我们在iPhone中的Linkeding遇到了一些问题。某些共享的url中有一个%23.linkedin路径,这会导致404错误页面。

仅在iPhone共享网址中会发生这种情况。

诸如https://host.com/2018/05/testing-url/之类的东西正在被转换为https://host.com/2018/05/testing-url/%23.linkding_etc

我们尝试将%23转换为%以消除错误,但没有运气。

我们如何实现?

预先感谢

1 个答案:

答案 0 :(得分:0)

  

我们尝试将%23转换为%

我假设您的意思是#(如您的标题中所述),因为%23是经过编码的#-片段标识符定界符。

由于片段标识符始终不会传递给服务器,因此您不应该尝试“转换”它。取而代之的是,您应该简单地删除此内容及其后的所有内容。

例如,在.htaccess文件顶部使用mod_rewrite:

RewriteEngine On
RewriteRule ^(.*)# /$1 [R,L]

RewriteRule 模式与%解码的URL路径匹配。即。文字#,而不是%23#不是特殊的正则表达式元字符,因此您可以像在URL中的其他普通字符一样对它进行匹配。

以上内容匹配{em> {em}之前的所有内容,并发出重定向,从而删除编码后的#(即#)及其后的所有内容。

注意,以上是临时(302)重定向。确认它可以正常工作后,可以通过将%23标志更改为R将其更改为永久性301。