【问题标题】:redirect rule for nginx?nginx的重定向规则?
【发布时间】:2011-08-24 23:01:53
【问题描述】:

我正在使用 nginx 运行我的 django 应用程序。我想写一个重定向规则,这样 如果用户点击 url http://example.com/django/nginx/ 然后它会将其重定向到 http://example.com/django/#!/nginx/。我想知道它的正则表达式。

谢谢

【问题讨论】:

    标签: django nginx redirect


    【解决方案1】:

    您需要在客户端(最有可能通过 Javascript)而不是通过 nginx 来处理此问题。

    据我了解,URL 中的 # 点(根据规范)是 # 之后的部分不会到达服务器。

    另外,请参阅此问题以获取有关使用 hash-bang url 的 JS 库的一些信息:Are there any javascript libraries for working with hashbang/shebang (#!) urls?

    【讨论】:

      【解决方案2】:

      以您为例,我假设您仅使用“http://1/2/3/”形式的 URL,因此没有任何内容超出 3。您想在哪里用“/”分隔 2 和 3 #!/".如果是这种情况,您可以尝试以下方法。

      from django.views.generic.simple import redirect_to
      
      urlpatterns = patterns('',
          ('^django/(?P<ajax_section>\w+)/$', redirect_to, {'url': '/django/#!/%(ajax_section)s/'}),
      )
      

      以上假设 URL 中的 2("django") 将被修复。如果不是这种情况,您也必须尝试将其设为参数。

      【讨论】:

      • django url 是否支持 #!在网址中?
      • 正如布兰特所指出的,数字符号之后的任何内容通常都会被忽略。因此,它通常与 JavaScript 结合使用来创建基于 ajax 的网站。如果您想要的是将用户重定向到正确的 ajax 版本的 URL,如果他们做出不正确的猜测,那么我的回答应该会有所帮助。否则,布兰特的答案似乎是最好的。
      猜你喜欢
      • 2015-12-22
      • 1970-01-01
      • 2017-02-04
      • 1970-01-01
      • 2016-06-15
      • 2016-05-20
      • 2018-12-20
      • 2016-12-03
      • 2015-05-17
      相关资源
      最近更新 更多