Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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

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
Apache 将页面重定向到带有#_Apache_.htaccess_Redirect_Mod Rewrite - Fatal编程技术网

Apache 将页面重定向到带有#

Apache 将页面重定向到带有#,apache,.htaccess,redirect,mod-rewrite,Apache,.htaccess,Redirect,Mod Rewrite,我想将一个url(比方说)重定向到一个参数为#()的url 我没有使用“重写规则”或“重定向”找到正确的规则。它总是重定向到,忽略最后一部分 有人能帮我吗 致意 你把指令弄混了。mod_aliasRedirect指令采用简单的根相对URL前缀(以斜杠开头)作为源URL参数。因此,上述情况永远不会匹配,也不会发生任何事情。mod_rewriteRewriteRule使用的Redirect指令没有[L,R=301]标志 例如: Redirect 301 /de/page-a/ /de/page-b/

我想将一个url(比方说)重定向到一个参数为#()的url

我没有使用“重写规则”或“重定向”找到正确的规则。它总是重定向到,忽略最后一部分

有人能帮我吗

致意

你把指令弄混了。mod_alias
Redirect
指令采用简单的根相对URL前缀(以斜杠开头)作为源URL参数。因此,上述情况永远不会匹配,也不会发生任何事情。mod_rewrite
RewriteRule
使用的
Redirect
指令没有
[L,R=301]
标志

例如:

Redirect 301 /de/page-a/ /de/page-b/#filter:fields=51
如果要重定向到相同的scheme+主机名,则无需指定绝对URL作为目标

当重定向到片段标识符(在
#
之后的所有内容)时,您确实需要小心重定向循环,因为fragid不会传回服务器。在这种情况下,您可以,因为您正在重定向到不同的URL路径,即
page-a
page-b
。但是您不能从
page-a
重定向到
page-a
(相同的URL路径和查询字符串),只需更改fragid,因为它将创建重定向循环。为此,您需要使用JavaScript

注意:首先使用302(临时)重定向进行测试,以避免缓存问题


如果您想使用mod_rewrite(即
RewriteRule
)实现此功能-如果您已经在使用mod_rewrite-则可以执行以下操作:

RewriteEngine On

RewriteRule ^de/page-a/$ /de/page-b/#filter:fields=51 [NE,R=301,L]
请注意,
RewriteRule
模式上没有斜杠前缀

此处需要使用
NE
标志,以防止
#
在响应中被URL编码并被视为URL路径的一部分。

忽略最后一部分。-它不应“忽略”最后一部分(除非您试图从带有
#
的URL重定向)-请显示您已尝试的内容。是否重定向^de/page \-a/$?[L,R=301]
RewriteEngine On

RewriteRule ^de/page-a/$ /de/page-b/#filter:fields=51 [NE,R=301,L]