Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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 htaccess使用hashbang将动态url重定向到一个_Apache_.htaccess_Mod Rewrite_Redirect - Fatal编程技术网

Apache htaccess使用hashbang将动态url重定向到一个

Apache htaccess使用hashbang将动态url重定向到一个,apache,.htaccess,mod-rewrite,redirect,Apache,.htaccess,Mod Rewrite,Redirect,我有http://domain.com/frame/1234sdfs但我想将其更改为http://domain.com/#/frame/1234sdfs 我现在使用的是试错法,但在我的.htaccess中没有得到任何结果 RedirectMatch 301^/frame/([^/]*)$/#/frame/$1 有人能帮我找到正确的方向吗?我一直在尝试按预期获取输出URL,但无法找到它。您应该使用mod_rewrite,以便可以使用NE标志。它可能正在使用mod_alias转换为%23。你需要把它

我有
http://domain.com/frame/1234sdfs
但我想将其更改为
http://domain.com/#/frame/1234sdfs

我现在使用的是试错法,但在我的.htaccess中没有得到任何结果

RedirectMatch 301^/frame/([^/]*)$/#/frame/$1


有人能帮我找到正确的方向吗?我一直在尝试按预期获取输出URL,但无法找到它。

您应该使用mod_rewrite,以便可以使用
NE
标志。它可能正在使用
mod_alias
转换为
%23
。你需要把它和这个代码一起发送到这里

RewriteEngine On
RewriteRule ^frame/([^/]+)/?$ /#/frame/$1 [NE,L,R=301]
省略[NE]将导致#转换为其十六进制代码 等效%23,这将导致404未找到错误 条件


注意:确保。允许htaccess并启用mod_rewrite。

它是如何工作的?根本没有处理重定向(可能是web服务器配置问题),或者只有此重定向不起作用。为什么要重定向到包含
#
的URL?这个字符在URL中有非常特殊的含义-通常意味着只能在客户端浏览器中理解,而不能在服务器上理解。所以,除非你有什么特别的理由使用这个角色,否则我会警告你不要使用它。@MikeBrant我最近在谷歌计算引擎上建立了一个AngularJS网站。我需要将以前对
/frame/{uniqueID}
的任何调用转发到hashbang。您的规则是正确的,应该可以从您的站点根目录下运行。htaccess或Apache configSo,我不知道为什么在谷歌计算引擎上会对解决此问题产生任何影响。因此,让我详细说明我先前评论中的关键问题。是否有任何重写工作(即是否启用mod_rewrite)?如果是,在Apache配置中是否启用了特定于目录的覆盖(即,甚至允许使用.htaccess文件)?