【问题标题】:htaccess rewrite rule for similar domainshtaccess 类似域的重写规则
【发布时间】:2016-04-20 19:22:05
【问题描述】:

我有一大堆需要指向一台服务器的域,它们都有一个相似的域,只是每个域的城市都发生了变化。

每个城市都在服务器上的一个单独文件夹中,例如 /newyork 将是“shoppinginnewyork.com”和 /california “shoppingincalifornia.com”

有没有一种方法可以为任何未来的域设置正则表达式规则,以便它自动选择城市并重定向或重写到新域?他们都会以“shoppingin”开头..

谢谢

【问题讨论】:

  • 所有域都指向同一个目录还是不同目录?
  • 每个站点都在不同的目录中,即 /sites/newyork 和 /sites/california
  • 您可以尝试在重写中使用正则表达式,例如这样shoppingin(.*)\.com in rewrite cond 并使用此输入$1,如果我没有错,下一个条件检查是否存在目录,之后您可以使用此$1 用于更新请求的重写规则。
  • inchoo.net/magento/…检查此链接也许这有助于解决您的问题

标签: php apache .htaccess mod-rewrite


【解决方案1】:

您可以在 VirtualHost 的 ServerAlias 指令中使用通配符:

看看下面的apachevirtualHost配置:

<VirtualHost *:80>

  ServerAlias shoppingin*.com

  DocumentRoot "/sites"

  # Then rewrite subdomains into different directories
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^shoppingin(.*).com$
  # Use the %1 captured from the HTTP_HOST
  # For example shoppinginnewyork.com writes to /sites/newyork
  RewriteRule ^(.*)$ "/sites/%1/$1" [L]
</VirtualHost>

在本地机器上测试了两个域。

【讨论】:

  • @Martin 有 %1 和 $1 - %1 将匹配 http 主机的 (*) 而 $1 会将 URL 重写到特定文件夹...
  • 哈哈,抱歉,再看一遍我的眼睛之前看到的是两个百分号,而不是百分比和美元。不过感谢您提供的信息:)
猜你喜欢
  • 2021-12-22
  • 2012-06-11
  • 2010-09-26
  • 2011-11-21
  • 2012-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
相关资源
最近更新 更多