万万没想到,我昨天眼急手快成功购买到了 BuyVM 一直缺货的虚拟主机,于是想都没想就用来搭建了一个 WordPress,但是难过并遗憾的是因为长期没有使用过 Cpanel 我不知道该怎么使用二级目录来建站了,也就是说在 public_html / 下的 wp 目录。为什么会出现一个 wp 目录?那是因为我使用了 Cpanel 自带的一键安装 WordPress。而一开始我并没有在域这一块绑定自己的域名,而是用的最原始的设定绑定的域名(也就是购买的时候所要求提供的域名)

Cpanel 如何使用二级目录搭建 WordPress

如果不使用二级目录作为主站,那么你访问的时候永远要在后面的链接加一个 /wp 例如,你的域名是 yourdomain.com, 但是你需要访问 yourdomain.com/wp, 虽然这部可以用重定向解决,但是当你点击你的网站标题回到首页的时候还是会有 /wp 在域名的后面飘荡。于是我进入了管理面板,选择在常规 --> 链接里面,将我原来的 yourdomain.com/wp 改成了 yourdomain.com。重新登录后台发现无法登录了。浏览器后面返回 reauth=1

纠结无果后我想到了 Cpanel 使用的 web 服务器是 Apache,于是想到了改变 Apache 的伪静态来进行着一骚操作。

Apache 的伪静态

首先我们要进入文件管理,public_html 文件夹中,然后点击右上角的齿轮⚙,选择显示隐藏文件 (dotfiles),在其目录下会出现.htaccess 文件,将光标移动到.htaccess 上,鼠标右击选择 Edit 编辑。

  • RewriteCond %{HTTP_HOST} ^(www.)?yourdomain.com$
  • RewriteCond %{REQUEST_URI} !^/wp/
  • RewriteCond %{REQUEST_FILENAME} !-f
  • RewriteCond %{REQUEST_FILENAME} !-d
  • RewriteRule ^(.*)$ /wp/$1
  • RewriteCond %{HTTP_HOST} ^(www.)?yourdomain.com$
  • RewriteRule ^(/)?$ wp/index.php [L]

上述配置中,yourdomain.com 以及 wp 都是你需要修改的,yourdomain.com 是你的域名,wp 是你的二级目录

WordPress 无法登录后台

解决这个后,如果你修改了 WordPress 的设置 --> 常规 -->WordPress 地址(URL)将后面的二级目录去掉,你会发现你无法登录后台了... 也就是前言所出现的浏览器后面返回 reauth=1,这里有三种办法解决

  1. 简单粗暴的重装,不要用二级目录踩坑
  2. 打开数据库,将你修改的 WordPress 的链接改回来
  3. 看下面的操作

打开文件管理,进入你的安装 WordPress 的二级目录,找到 /wp-includes/pluggable.php 并修改
大约在 929 行的时候会有一行这样的代码

  • setcookie($auth_cookie_name, $auth_cookie, $expire, ADMIN_COOKIE_PATH, COOKIE_DOMAIN, $secure, true);

将上面的代码替换成如下:

  • setcookie($auth_cookie_name, $auth_cookie, $expire, SITECOOKIEPATH, COOKIE_DOMAIN, $secure, true);

解决了吗?还没有,因为还有一个步骤就是你的伪静态。

WordPress 的伪静态

如果你想用点不同风格的链接后缀,伪静态是逃不了的一关... 也是众多神仙曾经踩坑过的一关。依旧是打开 public_html 目录下的.htaccess 并编辑。

  • # BEGIN WordPress
  • RewriteEngine On
  • RewriteBase /wp
  • RewriteRule ^index\\.php$ – [L]
  • RewriteCond %{REQUEST_FILENAME} !-f
  • RewriteCond %{REQUEST_FILENAME} !-d
  • RewriteRule . wp/index.php [L]
  • # END WordPress

要注意的是,里面的 wp 需要修改成你自己的安装 WordPress 的二级目录。