【问题标题】:htaccess redirect specific url's to new domainhtaccess 将特定 url 重定向到新域
【发布时间】:2019-02-05 12:53:06
【问题描述】:

由于采用了新系统,我们希望将当前网站的某些页面重定向到新域。我找到了将整个流量重定向到新域的解决方案

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^OLDDOMAIN\.com$ [NC]
RewriteRule ^(.*)$ http://NEWDOMAIN.com [R=301,L]

但例如我只想重定向一些特定的 url。例如:

olddomain.com/user/login => newdomain.com
olddomain.com/freestuff => newdomain.com/freestuff
olddomain.com/order/course => newdomain.com/book-course
olddomain.com/order/course?course=1 => newdomain.com/book-course?course_id=1

对于我还希望包含所有 GET 参数的所有 url(参见最后一个示例)。

我对正则表达式不是很熟悉,不知道如何解决这个问题。

谢谢

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    您可以为要重定向的每个特定 URL 设置单独的规则:

    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{HTTP_HOST} ^olddomain\.com$ [NC]
    RewriteRule ^/?user/login$ https://example.com/ [R=301]
    
    RewriteCond %{HTTP_HOST} ^olddomain\.com$ [NC]
    RewriteRule ^/?freestuff $ https://example.com/freestuff  [R=301]
    
    RewriteCond %{HTTP_HOST} ^olddomain\.com$ [NC]
    RewriteRule ^/?order/course$ https://example.com/book-course[R=301]
    
    RewriteCond %{HTTP_HOST} ^olddomain\.com$ [NC]
    RewriteCond %{QUERY_STRING} (?:^|&)course=(\d+)(?:&|$)
    RewriteRule ^/?order/course$ https://example.com/book-course?course_id=%1  [R=301]
    

    一般来说,最好在 http 服务器主机配置中实现这样的规则,而不是依赖动态配置文件(“.htaccess”),但两者都是可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-07
      • 2012-06-01
      • 1970-01-01
      • 2015-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多