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

2023-01-18php开发问题
3

本文介绍了.htaccess 将子域重写到目录并将子域保留在 url 中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

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

I need to rewrite a subdomain to a subdirectory using .htaccess but keep the subdomain in the url like this:

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

Visited url in browser: 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 是否有任何解决方案?

but this leads to an endless loop. I know that it would be easier to do this by php but is there any solution for this with using .htaccess?

推荐答案

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

You can use this rule in document root:

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/
  • NC: Ignore case
  • L: Last rule
  • RewriteCond %{HTTP_HOST} line makes sure that rule only executes for subdomain
  • (?!sub1/) is negative lookahead expression that means of request is not starting with /sub1/
  • RewriteRule ^((?!sub1/).*)$ /sub1/$1 [L,NC] rewrites current path to /sub1/<uri>
  • Apache mod_rewrite 介绍
  • Apache mod_rewrite 技术细节

这篇关于.htaccess 将子域重写到目录并将子域保留在 url 中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

PHP实现DeepL翻译API调用
DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以...
2025-08-20 php开发问题
168

PHP通过phpspreadsheet导入Excel日期数据处理方法
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的...
2024-10-23 php开发问题
287

mediatemple - 无法使用 codeigniter 发送电子邮件
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)...
2024-08-23 php开发问题
11

Laravel Gmail 配置错误
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)...
2024-08-23 php开发问题
16

将 PHPMailer 用于 SMTP 的问题
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)...
2024-08-23 php开发问题
4

关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)...
2024-08-23 php开发问题
17