Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 如何重写包含%23的URL?_Wordpress_.htaccess_Mod Rewrite - Fatal编程技术网

Wordpress 如何重写包含%23的URL?

Wordpress 如何重写包含%23的URL?,wordpress,.htaccess,mod-rewrite,Wordpress,.htaccess,Mod Rewrite,我有一个(wordpress)博客,用户在发表评论后会被重定向回页面,并带有他们评论的锚。应该是这样的: 但不知何故,我在日志文件中为这些URL获取了大量404文件: 有没有办法写一个.htaccess重写规则来解决这个问题 奖金问题: 你知道为什么会发生这种情况,我能做些什么吗?%23是#的URL编码表示。我怀疑您的重写规则不会满足%23。您应该调查响应是如何构建的。具体来说,任何URL编码函数 但是,可以使用重写规则解决您的问题。请理解,在提交评论后,您将向客户返回两个回复。这就是为什么

我有一个(wordpress)博客,用户在发表评论后会被重定向回页面,并带有他们评论的锚。应该是这样的:

但不知何故,我在日志文件中为这些URL获取了大量404文件:

有没有办法写一个.htaccess重写规则来解决这个问题

奖金问题:
你知道为什么会发生这种情况,我能做些什么吗?

%23
#
的URL编码表示。我怀疑您的重写规则不会满足
%23
。您应该调查响应是如何构建的。具体来说,任何URL编码函数

但是,可以使用重写规则解决您的问题。请理解,在提交评论后,您将向客户返回两个回复。这就是为什么最好更正第一个响应

# http://example.org/foo-bar/%23comment-570630 -> http://example.org/foo-bar/#comment-570630
RewriteCond %{REQUEST_URI} %23comment-\d+$
RewriteRule (.+)\/%23-comment(\d+)$ http://host/$1/#comment-$2 [R=301]
它未经测试,但应该可以工作(我不确定是否要转义
\%
,因为它在mod\u rewrite中有特殊意义)

你试过这个吗


未使用您的特定案例进行测试,但用于相关问题。

@Gumbo:使用302查找重定向。生成的标题如下所示:“Location:/foo bar/#comment-571738”你能发布这样做的代码吗?@Gumbo:不太可能,因为它埋在Wordpress核心深处。在99.99%的情况下,它也能工作,而且这不是一个被广泛报道的Wordpress问题,所以我认为这是一个死胡同。问题是,在我可以测试的所有系统上,响应都很好。它在URL中,重定向有效,我不知道在哪里以及为什么会中断。按照你的重写规则:不起作用。请求uri的匹配似乎不起作用,这就是我被卡住的地方,我也来这里询问。
RewriteCond
不满意吗?您是否尝试过转义百分比字符?是的。我做的第一件事。我还试着用这个在线测试工具来完善重写规则,并将其修改为
(.+)\/\%23comment-(.+)$http://host/$1/#comment-$2[R=301]
,但这在我的服务器上也不起作用。很奇怪。这个答案适用于那些在谷歌上搜索同样问题的人……为这条封闭而陈旧的线索再次出现表示歉意
RewriteCond %{REQUEST_URI} %23comment-\d+$
RewriteRule (.+)\/%23-comment(\d+)$ http://host/$1/#comment-$2 [B,R=301]