不同域名对应WordPress网站不同页面
笔者想要让自己 WordPress 网站的网址使用起来更为简洁、清晰、方便,因而想要做到以下两点:
①隐去网址中的 index.php
②不同的域名对应不同的页面
隐去网址中的 index.php
我们知道,在 WordPress 设置里的自定义固定链接,假如不带上 index.php
,那么访问 WordPress 文章时就会出现 404 错误而无法访问
对于隐去网址中的 index.php
,这一点比较简单,在宝塔面板中网站设置里找到“伪静态”一栏,在下拉框中找到“wordpress”,保存宝塔面板已经给你预设好的代码就行
随后在固定链接里即可把 index.php
给隐去,WordPress 可以正常访问
不同的域名对应不同的页面
对于这一点,根据实际情况和个人需要有不同的解决方案,每个方案的优缺点不太一样
- ①多站点,每站点一域名
- ②单站点,该站点支持多域名访问
- ③单站点单域名,但别的域名可以跳转到该域名,且地址栏显示的域名会变成该域名
- ④单站点单域名,但别的域名可以跳转到该域名,且地址栏显示的域名不变
各方案特点
简单说一下各方案的特点
多站点,每站点一域名
这意味着建立多个 WordPress 网站实现
比如 www.aaa.com
是第一个网站,www.bbb.com
是第二个网站,每个网站都有一个页面,那不同域名就是在多个网站间来回跳转
倘若业务量庞大,每个页面需要单独建站,那可能会比较合适
但假如业务量较小,仅仅是个人零碎的几个页面,那多建站大可不必,一个网站就一个页面的话,多建站反而还会增大各种成本,管理起来麻烦
单站点,该站点支持多域名访问
这个可以通过更改 WordPress 配置实现
我们知道 WordPress 默认页面的 URL 是这样的(隐去了 index.php
后):http://你的域名/页面名/
多域名访问就意味着 你的域名
那一块可以更换成任意域名
但假若你想要每个域名都对应一个页面名,而不出现页面名本身,那这种方法就做不到了,页面名还是会跟在域名后面
举个例子,我想要 http://www.bbb.com/
单独对应博客页 http://www.aaa.com/ccc/
,但用这种方法就会变成 http://www.bbb.com/ccc/
,而没法消去后面的 ccc/
单站点单域名,但别的域名可以跳转到该域名,且地址栏显示的域名会变成该域名
这个可以通过重定向实现
举个例子,我想要 http://www.bbb.com/
单独对应博客页 http://www.aaa.com/ccc/
,用这种方法,我在浏览器中输入了 http://www.bbb.com/
,那我就会自动跳转到该页面,并且浏览器网址栏此时显示的是 http://www.aaa.com/ccc/
单站点单域名,但别的域名可以跳转到该域名,且地址栏显示的域名不变
这个可以通过反向代理实现
反向代理和重定向的区别在于,页面跳转前后,反向代理的域名不会变,重定向的域名会变成定向目标的域名
比如 http://www.bbb.com/
单独对应博客页 http://www.aaa.com/ccc/
,在浏览器中输入了 http://www.bbb.com/
,那页面跳转后,网址栏显示的 URL 也不会再变了
如果想要每个域名都对应一个页面名,而不出现页面名本身,这种方法就可以做到
各方案实现
多站点,每站点一域名
💬相关
博客《WordPress开启多站点功能以及插件MU Domain Mapping教程》
https://blog.csdn.net/weixin_42077074/article/details/123134011
单站点,该站点支持多域名访问
这个就比较简单了,可通过更改 WordPress 配置从而取消域名绑定限制
打开网站根目录下的 wp-config.php
,在 define(‘WP_DEBUG’, false);
后面:
如果允许任意域名访问,则添加下面内容
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
如果仅允许指定的几个域名访问,则添加下面内容
$domain = array("www.aaa.com", "www.bbb.com", "www.ccc.com");
if(in_array($_SERVER['HTTP_HOST'], $domain)){
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
}
单站点单域名,但别的域名可以跳转到该域名,且地址栏显示的域名会变成该域名
直接在宝塔面板的网站设置中找到“重定向”,输入相应域名即可
单站点单域名,但别的域名可以跳转到该域名,且地址栏显示的域名不变
以下以 http://www.bbb.com/
单独对应博客页 http://www.aaa.com/ccc/
为例
隐去了前文所说的 index.php
后,首先我们需要将文章的链接带上 ccc/
,便于后续统一替换,此处以 blog/
为例
随后在宝塔面板的网站设置中找到“反向代理”
目标 URL 填 http://www.aaa.com/ccc/
,发送域名填 www.aaa.com
,并且将内容替换填上 www.aaa.com/ccc/
和 www.bbb.com/
还有个小细节,这之后你会先发现网站上一些图标或字体加载不出来……原因是出于安全考虑不给跨域请求资源
💬注释
… has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
那么需要在原先 www.aaa.com
的网站设置中找到“配置文件”,加上以下代码,意为允许 .tff、.ttc、.otf、.eot、.woff、.woff2 文件跨域请求
location ~* \.(ttf|ttc|otf|eot|woff|woff2)$ {
add_header Access-Control-Allow-Origin *;
}
后面又发现了一个问题……经反向代理后,WordPress 网站需要密码的文章无法核对密码了,输入密码提交后直接白屏,这就让笔者抓狂不已,折腾了几天终于发现问题所在,具体可查阅下文
博客《解决WordPress网站反向代理后文章无法核对密码的问题》
https://blog.csdn.net/weixin_42077074/article/details/123167252
随后即可大功告成
不重复的姓名: JSONArray相当于List<Oject>,JSONObj相当于Map<String,Object>吧
qq_45572620: 请问为什么jpg格式得图像不能解密成功呢,只有png格式得可以,但是他的数据集coco不就是jpg格式得吗
梦未: 在Windows搭建的虚拟环境
lcy_wl: 作者您好,请问您是在windows下运行的吗?还是在Linux下运行的
lcy_wl: 大佬 请问你解决报错找不到嵌入信息的问题了吗