【问题标题】:Exclude certain subfolders and domains in redirects在重定向中排除某些子文件夹和域
【发布时间】:2010-12-16 11:30:10
【问题描述】:

这是Redirect only HTML files?的延续

如何更改我的 .htaccess 以使其从纯 HTML 重定向中排除某些子文件夹或子域?我尝试使用此代码排除“下载”子文件夹以及“开发”和“支持”子域,但它不起作用:

RewriteCond %{HTTP_HOST} ^pandamonia.us$ [OR]
RewriteCond %{HTTP_HOST} ^www.pandamonia.us$ [OR]
RewriteCond %{HTTP_HOST} !download [OR]
RewriteCond %{HTTP_HOST} !faq
RewriteCond %{HTTP_HOST} !support [OR]
RewriteRule /.+\.html$ "http\:\/\/pandamonia\.us\/" [L]

【问题讨论】:

    标签: html apache mod-rewrite subdomain subdirectory


    【解决方案1】:

    为此,您需要检查 REQUEST_URIRewriteRule $0 的整个匹配项; HTTP_HOST 只包含当前请求的主机名。您还需要更改条件的逻辑表达式:

    RewriteCond %{HTTP_HOST} ^pandamonia\.us$ [OR]
    RewriteCond %{HTTP_HOST} ^www.pandamonia\.us$
    RewriteCond %{REQUEST_URI} !^/download/
    RewriteCond %{REQUEST_URI} !^/faq/
    RewriteCond %{REQUEST_URI} !^/support/
    RewriteRule /.+\.html$ http://pandamonia.us/ [L]
    

    【讨论】:

    • 这很神奇。起初它不起作用,但那是因为目录是downloads 而不是download。非常感谢! :)
    • @Alexsander Akers:我希望你明白为什么只有第一个 RewriteCond 需要 OR 而其他不需要。
    【解决方案2】:

    对于那些希望快速了解 Gumbo 之前的回复(他提到何时(和不)使用 [OR] 的情况的人,我发现这个 WMW 线程非常有帮助: http://www.webmasterworld.com/apache/3522649.htm

    【讨论】:

      猜你喜欢
      • 2021-06-13
      • 2012-07-26
      • 2018-06-14
      • 2014-02-28
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多