代码之家  ›  专栏  ›  技术社区  ›  Jeramiah Harland

.htaccess将域别名重定向到特定页面

  •  0
  • Jeramiah Harland  · 技术社区  · 7 年前

    我工作的公司开了三家餐厅,其中一家的名字和其他的不同。该网站是相同的,除了标志和内容。因此,我设置了一个域别名,一切正常。

    • domain1.com=domain2.com

    以下是我目前掌握的情况:

    RewriteCond %{HTTP_HOST} ^www\.domain2\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/example1/?$
    RewriteRule ^(.*)$ http://domain2.com/example1/ [R=302,L]
    
    RewriteCond %{HTTP_HOST} ^www\.domain1\.com$ [NC]
    RewriteCond %{REQUEST_URI} ^/example1/?$
    RewriteRule ^(.*)$ http://domain2.com/example1/ [R=302,L]
    

    这很管用……有点。

    不完全是。。。

    示例:

    http://domain2.com “这很管用

    • domain2.com到domain2.com/page/(重定向循环)

    当HTTP_主机为' http://www.domain2.com

    • www.domain2.com至domain2.com/page/(WORKS)
    • www.domain2.com至www.domain2.com/page/(重定向循环)
    1 回复  |  直到 7 年前
        1
  •  2
  •   Jeramiah Harland    7 年前

    我终于开始工作了。

    RewriteCond %{HTTP_HOST} ^(www\.)?domain2\.com$ [NC]
    RewriteCond %{REQUEST_URI} ^/$
    RewriteRule ^(.*)$ http://domain2.com/example1/ [R=302,L]
    

    因此,诀窍最终是:

    RewriteCond %{REQUEST_URI} ^/$
    

    我读到%{REQUEST\u URI}总是包含一个前导斜杠,它从不为空,所以通过检查它是否只包含,我能够理顺我的重定向。

    现在,如果HTTP_主机是www.domain2.com

    • 重写cond%{HTTP\u HOST}^(www.)?域名2.com$[NC]=
    • 重写cond%{REQUEST\u URI}^/$= 符合事实的

    如果HTTP_主机是www.domain2.com/example1/

    • 重写cond%{HTTP\u HOST}^(www.)?域名2.com$[NC]=
    • 重写cond%{REQUEST\u URI}^/$=
    • 没有重定向!求爱