【问题标题】:Using htaccess to redirect host urls but not when they contain paths or parameters使用 htaccess 重定向主机 url,但当它们包含路径或参数时不使用
【发布时间】:2011-11-29 16:31:28
【问题描述】:

我想做的是使用 htaccess 将(301,永久重定向)简单主机仅 url 重定向到另一个域,但仅当 url 不包含路径或参数时。

例如:

http://www.mydomain.com 应该重定向到 http://www.myotherdomain.comhttp://mydomain.com 应该重定向到 http://myotherdomain.com

(我找到了很多例子)

一个像这样的网址: http://www.mydomain.com/someimage.jpghttp://mydomain.com/js/coolJsScript.js 根本不应该被重定向。

任何帮助将不胜感激!

谢谢!

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect


    【解决方案1】:

    我认为这条规则会匹配没有任何路径的传入 URL:

    RewriteRule ^$ http://othersite.com/ [L,R=301]
    

    您还没有明确说明您在此处尝试执行的操作,但可能有另一种选择,即检查文件是否存在,如果不存在则重定向到您的其他站点。这个测试类似于

    # Check if file exists
    RewriteCond %{REQUEST_URI} -f
    
    # it exists, so stop processing
    RewriteRule .* - [L]
    
    # Redirect everything else
    RewriteRule (.*) http://othersite.com/$1 [L,R=301]
    

    【讨论】:

    • 我正在处理的是具有多个子域的单个 Web 主机。我有一个从主机根目录服务的站点,并且已经将它移到了根目录之外的子目录中。主机标头正确地指向我的子域,但我仍然需要能够从根目录提供项目。我希望 mydomain.com 重定向到 blog.mydomain.com 但我希望能够从现有 mydomain 域的根目录提供 mydomain.com/myavatar.jpg,同时将对 mydomain.com 的任何简单请求推送到博客.mydomain.com。您的次要解决方案听起来比我想的更合适。
    猜你喜欢
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 2012-07-21
    • 2012-06-13
    相关资源
    最近更新 更多