【问题标题】:RewriteRule for subdomains子域的重写规则
【发布时间】:2011-10-20 07:53:13
【问题描述】:

我的 .htaccess 中的重写有问题 首先,我的网站 (*.site.com) 上有一个通配符

这是我网站的路径:

/home/www/static/
/home/www/home/
/home/www/.htaccess

所以我在我的网站根目录创建了一个 .htaccess:

RewriteCond %{HTTP_HOST} static.site.com [NC]
RewriteRule !^static/ static%{REQUEST_URI}

RewriteCond %{HTTP_HOST} www.site.com [NC]
RewriteRule !^home/ home%{REQUEST_URI}

这些重定向运行得很好,但是当我想去例如:

http://www.site.com/img

有一个问题,它把我重定向到http://www.site.com/home/img/

但是当我用最后的反斜杠输入http://www.site.com/img/ 时,一切正常。

感谢回复:)

【问题讨论】:

  • 您希望在哪些情况下重定向到/home/...

标签: apache .htaccess dns subdomain wildcard


【解决方案1】:

已解决:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,6}|/|#(.*))$
RewriteRule ^(.*)$ $1/ [R=301,L]

【讨论】:

    【解决方案2】:

    试试:

    RewriteRule ^(.*)$ $1/ [R=301,L]
    

    如果缺少斜线,这应该会为您添加缺少的斜线。您需要包含“L”标志以告诉重写引擎这是您的最后一次重写,而不是在此之上应用其他规则。

    【讨论】:

      【解决方案3】:

      不匹配映射到现有目录的请求

      RewriteCond %{REQUEST_FILENAME} !-d
      

      如果不行,尝试匹配请求加上另一个斜杠是否是目录?

      RewriteCond %{REQUEST_FILENAME}/ !-d
      

      【讨论】:

      • 我输入了RewriteCond %{HTTP_HOST} www.site.com [NC] RewriteCond %{REQUEST_FILENAME}/ !-d RewriteRule !^home/ home%{REQUEST_URI} 但它不起作用:(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 2010-09-26
      • 2011-11-21
      • 2012-07-31
      相关资源
      最近更新 更多