【问题标题】:Rewrite rules in httpd.conf (Apache)在 httpd.conf (Apache) 中重写规则
【发布时间】:2014-09-01 13:55:15
【问题描述】:

我目前正在迁移到新服务器。我想将域从旧服务器指向新服务器。一些旧内容将存在于旧服务器上,该服务器现在将监听新的子域。该服务器应将所有流量转发回子域(旧服务器),而不是新的和更新的文件,例如“domain.com”和“www.domain.com”下的所有流量都应重定向到“oldsite.domain.com”,不包括一些目录,例如/新闻编辑室

我把它放在一起,但我不确定它是否有效。非常感谢任何形式的建议。

RewriteCond %{http_host} !^www.domain.com$
RewriteCond %{REQUEST_URI} !^/search [OR]
RewriteCond %{REQUEST_URI} !^/newsroom
RewriteRule ^/(.*)$ http://oldsite.domain.com/$1 [L]

更新: 此修改现在有效:

RewriteCond %{HTTP_HOST} !^.*\.domain\.com
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_URI} !^/(search|newsroom).*$
RewriteRule ^(.*)$ http://site.domain.com/$1 [R=302,L,NE]

效果很好。再次感谢。

【问题讨论】:

    标签: linux apache mod-rewrite rewrite httpd.conf


    【解决方案1】:

    试试这个:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(?:www\.)?domain\.com
    RewriteRule ^(?!(?:search|newsroom))[^/] http://oldsite.domain.com%{REQUEST_URI} [R=302,L,NE]
    

    【讨论】:

    • 非常感谢!我现在正在推动它 - 将分享结果。
    • 太棒了,十指交叉。 :)
    • 几乎可以工作:我忘记了根也应保留而不重定向到旧站点。*。似乎有点棘手,还是只是 REQUEST_URI 为空?
    • 所以我把这个和你的帮助和我得到的其他反馈放在一起,见上文。
    猜你喜欢
    • 2014-02-01
    • 2012-04-20
    • 1970-01-01
    • 2012-10-08
    • 2011-09-02
    • 2011-10-26
    • 1970-01-01
    相关资源
    最近更新 更多