【问题标题】:htaccess redirect only for one domainhtaccess 仅重定向一个域
【发布时间】:2013-04-06 09:19:18
【问题描述】:

我有多个域指向同一个网站空间(www.domain1.com、www.domain2.com、www.domain3.com 等)。仅当使用一个域时,例如www.domain1.com,我想从不同的短链接重定向用户,例如www.domain1.com/link 或 www.domain1.com/link2,指向另一个 URL。

我整理了以下内容。 RewriteCond 可能没问题,但 RewriteRules 不起作用:

RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com [NC]
RewriteRule ^/test$ http://www.domain1.com/xyz.php [R=301]
RewriteRule ^/test2$ http://www.domain1.com/abc.php [R=301]
RewriteRule ^/test3$ http://www.domain1.com/abc/test10.php [L,R=301]

您对正确的 RewriteRules 应该是什么样子有任何提示吗?

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    希望这可以帮助您朝着正确的方向前进...

    RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com [NC]
    RewriteCond %{REQUEST_URI} ^(/test/)$ [NC]
    RewriteRule ^(.*)$ http://www.domain1.com/xyz.php [R=301]
    
    RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com [NC]
    RewriteCond %{REQUEST_URI} ^(/test2/)$ [NC]
    RewriteRule ^(.*)$ http://www.domain1.com/abc.php [R=301]
    
    RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com [NC]
    RewriteCond %{REQUEST_URI} ^(/test3/)$ [NC]
    RewriteRule ^(.*)$ http://www.domain1.com/abc/test10.php [L,R=301]
    

    【讨论】:

    • 谢谢!这看起来很复杂......所以我需要为每个重定向 URL 添加三行。我的 htaccess 文件中有 30 多个重定向 URL。是否可以只写一个 RewriteCond,在它下方的一行中每个重定向,并且 RewriteCond 适用于所有重定向,例如:第一行:RewriteRule ...,第二行:重定向 ...,第三行:重定向 ...等.?
    • 实际上,如果 .htaccess 文件仅适用于一个域(例如 domain1.com),那么您应该能够消除说 RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com [NC] 的行...除此之外,尽管我不是当然,您还可以使用 .htaccess 做很多其他事情。但是,使用 PHP,您可以假设在您列出的每个目录中放置一个名为 index.php 的文件,并在每个索引文件中放置如下内容:<?php header('Location: http://www.domain1.com/xyz.php');
    猜你喜欢
    • 2020-05-04
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 2016-09-04
    • 2012-05-24
    • 2012-05-01
    • 1970-01-01
    • 2010-10-14
    相关资源
    最近更新 更多