NGINX Drupal 移动重定向

NGINX Drupal 移动重定向

我想做的事

我希望移动用户重定向到http://m.site.org/mobile-home

重定向到 m.bzaeds.org 不是问题。我在 Apache 中也能正常工作,但我在 Apache 中使用的相同 .htaccess 规则似乎在 NGINX 中不起作用。我也尝试使用 NGINX 转换器转换此确切规则,但它给我的规则也不起作用。

  RewriteCond %{HTTP_HOST} m.site.org
  RewriteCond %{REQUEST_URI} ^\/?$
  RewriteRule ^(.*)$ mobile-home [L]

我目前所做的

因此,我让 NGINX 重定向到 m.site.here/mobile-home。现在,我们使用移动模块来检测所连接的设备是否为移动设备,并自动应用自定义移动主题。它可以毫无问题地检测设备是否为移动设备。

但是,即使重定向有效,它仍无法加载,我查看了 error_log 并发现它失败是因为 /var/www/html/drupal/mobile-home 不存在 —— 是的,这是真的。我假设这与 mobile-home 实际上是一个节点有关,因为 drupal 中的页面就是这样的。

但是,无论我如何尝试创建重定向(或返回 301),它要么被禁止,要么无限重定向循环,要么抛出上述错误。

有任何想法吗?

现在这是我迄今为止尝试过的大量令人困惑的事情;

    location / {
            #if ($http_user_agent ~* '(iPhone|iPod|android|blackberry)') {
    #   rewrite ^/(.*)$ /index.php?q=$1;
    #}
            #if ($http_host ~ "m.bzaeds.org"){
            #rewrite ^(.*)$ /mobile-home [L] RewriteCond $request_filename !-f;
            #}
    try_files $uri @rewrite;
    #try_files $uri /mobile-home break;
}        


    location @rewrite {
        #index index.php;
    #   if ($http_user_agent ~* ('iPhone|iPod)') {
    #     rewrite ^(.*)$/index.php http://m.bzaeds.org/mobile-home$1 break;
    #   }
        # Some modules enforce no slash (/) at the end of the URL
            # Else this rewrite block wouldn't be needed (GlobalRedirect)
    rewrite ^/(.*)$ /index.php?q=$1;
    #return 301 /mobile-home break;

(并且,我也尝试过摆脱 location @rewrite 并仅在 location / 下进行主要重写,但我仍然遇到许多相同的错误。我刚刚在非移动版本中完成了这样的声明,所以,是的。)

答案1

因此,我没有按照我最终想要的方式使用重定向,因为无论我怎么尝试,它仍然不会停止在错误的地方查找。但是,我发现如果您使用“移动工具”模块,它会在“首页”下为您提供选项,将其设置为节点,在我们的例子中是 mobile-home 而不是索引。

问题解决了,问题解决了,足够好了。

相关内容