php - .htaccess 将子域重写到目录并将子域保留在 url 中

标签 php regex apache .htaccess mod-rewrite

我需要使用 .htaccess 将子域重写为子目录,但将子域保留在 url 中,如下所示:

在浏览器中访问的url:sub1.domain.com

服务网址:sub.domain.com/sub1/

我尝试了以下方法

RewriteCond %{HTTP_HOST} ^subdomain.domain.com
RewriteRule ^(.*)$ http://subdomain.domain.com/subdomain/$1 [L,NC,QSA]

但这会导致死循环。我知道通过 php 执行此操作会更容易,但是使用 .htaccess 是否有任何解决方案?

最佳答案

您可以在文档根目录中使用此规则:

RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$ [NC]
RewriteRule ^((?!sub1/).*)$ /sub1/$1 [L,NC]

解释:

  • NC : 忽略大小写
  • L : 最后一条规则
  • RewriteCond %{HTTP_HOST}行确保该规则仅针对 subdomain 执行
  • (?!sub1/)是否定前瞻表达式,表示请求不是以 /sub1/ 开头
  • RewriteRule ^((?!sub1/).*)$ /sub1/$1 [L,NC]将当前路径重写为 /sub1/<uri>

引用资料:

关于php - .htaccess 将子域重写到目录并将子域保留在 url 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22394989/

相关文章:

php - 从一个读取并写入第二个excel文件 - PHP

php - 在填充的 PHP 下拉列表中选择匹配的值

Javascript 正则表达式可选在左侧或右侧

Apache 将流量从端口 80 路由到其他端口

apache - 无法通过 UBUNTU 12.10 上的本地 IP 地址访问 Web 服务器

ios - 如何使用系留 iPhone 访问 Mac 上的虚拟主机

php - 如何在mysql中使用内连接从一个表中获取总和

php - 与字符串连接和求和相关的非常基本的 php 查询

java - Android Java 正则表达式替换重复模式如图所示

arrays - 如何将包含数字+字符的字符串中的数字提取到 Ruby 中的数组中?