【问题标题】:htaccess rewrite rule for domain alias with single subdir具有单个子目录的域别名的 htaccess 重写规则
【发布时间】:2014-01-25 21:52:46
【问题描述】:

我的网站有一个大的 .htaccess 文件来控制别名和子目录

例如mysite/townname 设置为加载特定内容,如下所示(vbulletin) - 2 个条目用于处理是否以 / 结尾是否正常

RewriteRule ^([^/.]+)/$ content.php?r=157&town=$1&newtownidmethod=1&showregion=1 [NC]
RewriteRule ^([^/.]+)$ content.php?r=157&town=$1&newtownidmethod=1&showregion=1 [NC]

以上方法适用于 mainsite/subdir1,如果 mainsite/subdir1/subdir2 则不调用

但如果正在使用某个别名域,我想加载不同的内容,例如content.php?r=9,但前提是只有一个 subdir1。 subdir1 实际上是城镇名称,共有 650 个。

实例

  • www.qlocal.co.uk/southport 将为带有新闻 (content.php=157) 的主页加载 content.php=157,如上述重写器的
  • www.movingdiy.co.uk/southport - 我想加载一个带有待售房产的不同主页 (content.php=9)

我需要检测(我假设是 rewritecond)使用站点movingdiy.co.uk 并且如果在 url 中只指定了一个(并且只有一个)子目录然后加载不同的内容。

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

    你可以有这样的规则:

    RewriteCond %{HTTP_HOST} !^(www\.)?movingdiy\.co\.uk$ [NC]
    RewriteRule ^([^/.]+)/?$ content.php?r=157&town=$1&newtownidmethod=1&showregion=1 [L,QSA]
    
    RewriteCond %{HTTP_HOST} ^(www\.)?movingdiy\.co\.uk$ [NC]
    RewriteRule ^([^/.]+)/?$ content.php?r=9&town=$1&newtownidmethod=1&showregion=1 [L,QSA]
    

    【讨论】:

    • 谢谢,这似乎工作正常。我有一些其他别名域使用相同的站点,但都使用 content.php?r=157。如果我首先输入第二个条件,我是否正确,然后它才会起作用,或者我是否必须为每个别名域设置一个条件。我的建议似乎确实有效,但正在使用。 RewriteCond %{HTTP_HOST} ^(www\.)?movingdiy\.co\.uk$ [NC] RewriteRule ^([^/.]+)/?$ content.php?r=9&town=$1&newtownidmethod=1&showregion=1 [L,QSA] 其他域似乎仍然可以正常工作,例如 www.qlocal.co.uk/southport 和 www.southport.gb.com/southport。再次感谢,开始测试
    • 好的,现在检查更新的答案。第一个现在使用否定,这意味着除www.movingdiy.co.uk/ 之外的所有站点都将具有?r=157
    猜你喜欢
    • 2014-06-14
    • 2010-09-26
    • 2011-11-21
    • 2012-07-31
    • 2014-10-18
    • 2012-06-11
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多