2012-03-01 48 views
0

我有以下的.htaccess在.htaccess链接上包含GET变量?

RewriteRule ^register.html$ ?page=register 

我有一个请求,通常下面一个jQuery AJAX功能,它的工作原理。

www.blabla.com/#!?page=register&module=ajax 

然而,当我用的.htaccess

www.blabla.com/#!kayit.html&module=ajax [HTTP/1.1 404 Not Found 114 ms] 

我怎样才能解决这个问题,任何想法使用它,它得到的窃听?

当您使用 #
+1

你重写规则既不要求相匹配。也许这就是问题所在? – tdammers 2012-03-01 06:57:24

+0

我怎样才能使它匹配? $ module = ajax只是一个空的东西,以防止Ajax请求成为循环。 – Aristona 2012-03-01 07:02:54

回答

1

你根本就做不到。您正在使用片段标识符(哈希符号之后的文本)作为路径(这是ajax-y网站的常规过程),但片段标识符甚至不会到达服务器。 您必须向服务器发送ajax请求并提供其内容。

实际的问题是,如何从与个位,已经提供的重写规则合并GET变量。

因此,在你的榜样,你想要的网址register.html?var=1被重定向到?page=register&var=1

RewriteRule ^register.html$ ?page=register [qsappend] 

文档:http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriteflags

+0

哈希标签是一种在Twitter上对事物进行分类的系统。 URI中的散列符号表示片段标识符的开始。 – Quentin 2012-03-01 07:39:46

+0

这是正确的。您可以通过编写和修改哈希标记来模拟ajax-y环境中的URL。但是哈希标记实际上并未发送到服务器。您必须获取哈希标记的内容,使用javascript解析它,使用实际的URL向服务器发出ajax请求,并将收到的内容包含在页面中。但是你不能跳过那部分的“获取URL并做一个Ajax请求”,并期望它能够工作。 – apfelbox 2012-03-01 07:43:42

+0

它的工作。使用qsappend时应该注意什么? – Aristona 2012-03-01 07:44:56

0

片段标识符:

  1. 的处理完全是客户端和永远不会从客户端发送,您可以通过添加qsappend(查询字符串追加)标志做到服务器
  2. 必须出现在URI的查询Ÿ串