You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

子域名跨服务商重定向至指定目录并保持URL规范

解决子域名指向目录后URL显示异常及页面空白问题

第一步:补全虚拟主机权限配置

你的虚拟主机配置缺少目标目录的访问权限声明,这很可能是页面空白的核心原因。修改httpd-vhosts.conf,给me.comp.com的虚拟主机添加<Directory>配置块:

<VirtualHost *:80>
   DocumentRoot "C:/xampp/htdocs/app2"
   ServerName me.comp.com
   ErrorLog "logs/me.comp.com-error.log"
   CustomLog "logs/me.comp.com-access.log" common

   <Directory "C:/xampp/htdocs/app2">
       Options Indexes FollowSymLinks MultiViews
       AllowOverride All
       Require all granted
   </Directory>
</VirtualHost>
  • AllowOverride All是让.htaccess规则生效的前提,之前未开启的话,你的重写规则根本不会被执行。
  • Require all granted确保Apache允许访问该目录,避免权限限制导致的空白页。

第二步:修正.htaccess重写规则

原规则仅处理了IP跳转,未解决隐藏/app2路径和默认首页的问题。将C:/xampp/htdocs/app2目录下的.htaccess替换为以下内容:

RewriteEngine On

# 强制使用域名访问,禁止IP直接访问
RewriteCond %{HTTP_HOST} ^xxx\.xxx\.xxx\.xxx$
RewriteRule ^(.*)$ http://me.comp.com/$1 [R=301,L]

# 设置默认首页,访问根目录时自动加载index.php
DirectoryIndex index.php index.html

# 隐藏URL中的/app2路径(如果应用逻辑依赖根路径)
RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

如果你的应用已经将app2作为根目录运行,可简化为:

RewriteEngine On

# IP跳转规则
RewriteCond %{HTTP_HOST} ^xxx\.xxx\.xxx\.xxx$
RewriteRule ^(.*)$ http://me.comp.com/$1 [R=301,L]

# 访问根目录时自动指向index.php,不显示路径
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^$ index.php [L]

第三步:验证核心模块与配置

  • 确认Apache的mod_rewrite模块已启用:打开httpd.conf,找到#LoadModule rewrite_module modules/mod_rewrite.so,删除行首的#注释。
  • 重启XAMPP的Apache服务,所有配置修改必须重启后生效。
  • 清除浏览器缓存,301重写属于永久缓存,之前的错误跳转记录可能残留。

额外排查方向

  • 查看me.comp.com-error.log中的错误信息,空白页大概率是权限问题或PHP执行错误,日志会给出明确提示。
  • 若在本地测试,检查系统hosts文件是否存在域名解析冲突,确保me.comp.com指向正确的服务器IP。

内容的提问来源于stack exchange,提问作者Balael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 01:30:01