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

Drupal 7站点WordPress子目录部署后URL去子目录优化咨询

解决Drupal根目录下WordPress子目录的URL隐藏问题

没问题,这个需求完全可以通过调整WordPress配置和Drupal根目录的.htaccess来实现,既不用改动现有Drupal的URL,也能让WordPress的内容以根域名直接访问。具体操作步骤如下:

1. 先调整WordPress的后台URL设置

  • 先登录你的WordPress后台(临时访问地址:http://www.example.com/subfolder/wp-admin)
  • 进入设置 > 常规页面:
    • 「WordPress地址(URL)」保留为 http://www.example.com/subfolder(这是实际安装路径,绝对不能改)
    • 「站点地址(URL)」修改为 http://www.example.com(这是你希望前端显示的URL)
  • 保存设置后,可能会出现后台无法访问的情况,别担心,接下来我们通过配置文件锁定设置。

2. 修改WordPress的wp-config.php文件

  • 登录服务器,找到/var/www/html/subfolder/wp-config.php文件
  • 在文件的最后一行(也就是require_once(ABSPATH . 'wp-settings.php');之前)添加以下代码:
define('WP_HOME','http://www.example.com');
define('WP_SITEURL','http://www.example.com/subfolder');
  • 保存文件后,WordPress的URL设置就被锁定了,这时候你就能重新正常访问后台了。

3. 修改Drupal根目录的.htaccess(核心重写规则)

  • 打开Drupal根目录的.htaccess文件(路径:/var/www/html/.htaccess)
  • 在Drupal自带的重写规则(比如# Rewrite URLs of the form 'x' to 'index.php?q=x'那一段)之前,添加以下重写规则:
# 转发WordPress的.blog.html结尾请求到子目录
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*\.blog\.html)$ subfolder/$1 [L]
  • 规则说明:这两行RewriteCond是为了确保只转发那些不存在的文件/目录请求(避免影响Drupal本身的页面),然后把所有以.blog.html结尾的URL,悄悄转发到subfolder目录下对应的内容。

4. 测试与验证

  • 访问http://www.example.com/my-blog-1.blog.html,确认能正常打开对应的WordPress文章
  • 访问Drupal原有的页面(比如http://www.example.com/contact),确保没有受到影响
  • 登录WordPress后台发布一篇新文章,检查生成的URL是否自动为http://www.example.com/new-blog.blog.html格式

额外注意事项

  • 确保你的Apache服务器已经开启了mod_rewrite模块,如果没开,执行sudo a2enmod rewrite然后重启Apache服务
  • 清除Drupal和WordPress的缓存,避免旧的URL缓存干扰测试
  • 如果之后WordPress还有其他URL格式(比如分类页、标签页),可以根据需要调整.htaccess里的RewriteRule匹配规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:23:12