【问题标题】:Trying to exclude a URL from htaccess rule试图从 htaccess 规则中排除 URL
【发布时间】:2012-11-09 00:29:30
【问题描述】:

我正在尝试在我的 httpd.conf 中为服务器上的所有网站设置一个全局移动重定向,并且只需要编辑一次,而不是 92 次。所有移动网站都会重定向到一个位置,这很好。

但是,我想从重定向中完全排除一个特定的 URL。到目前为止,这是我无法正常工作并导致重定向循环的内容:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*iphone|ipod|blackberry|android|sgh|sonyericsson|psp|mot|htc|lg|nokia|palm|treo|j2me|webos|smartphone|symbian.*$ [NC]
RewriteCond %{REQUEST_URI} !^http://www.example.com/mobile [NC]
RewriteRule ^(.*) http://www.example.com/mobile [R=302,L]

谁能弄清楚为什么它会导致该特定网址上的重定向循环?它只是该域上的一个文件夹,其中包含一个 .htaccess,其中仅包含 RewriteEngine off 和一个带有 header() 重定向调用的 index.php 文件。

【问题讨论】:

    标签: apache .htaccess


    【解决方案1】:

    %{REQUEST_URI} 变量永远不会看起来像 http://www.example.com/mobile,因为它永远不会包含协议(“http://”位)或主机信息(“www.example.com “`部分)。您只需要 URI 部分

    RewriteCond %{REQUEST_URI} !^/mobile 
    

    如果您还需要检查主机名,则需要一个附加条件:

    RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-19
      • 2010-12-22
      • 1970-01-01
      • 2015-03-21
      相关资源
      最近更新 更多