有两个网站,我们称之为a.com和b.com;直到现在他们已经完全分开了.但是,存在“协同作用”,因此客户希望使b.com成为a.com的一部分(相同的媒体库,用户,主机,数据库等)……但是它拥有自己的域和设计.站点内的站点,具有自己的域.

所以,基本上:当用户访问网站的特定部分时 – 让我们说a.com/b,URL应该更改为b.com.

我想我可以用apache虚拟主机解决这个问题;我发现这个如何使用Yii:
Assign different domain for two controllers only

但我正在使用wordpress(已经成为主要网站),所以我应该使用vanilla PHP和Apache调整.欢迎任何提示和指示.

请注意:这不是关于多站点,因为这将使公共媒体库和用户等的好处无效.

如果您想使用单个wordpress安装,您要么想要使用域映射插件运行wordpress Multisite(您似乎不想这样做),或者让wordpress接受任何请求主机名(域)来操作和服务有条件地在每个域上的内容.

(以下假设您同时控制example.com和secondary.com,并且它们都指向wordpress安装所在的同一服务器.此外,以下示例直接从我的脑海中提取,没有涉及真正的测试或验证,它可能会也可能不会按原样运作.)

让WP为请求接受多个主机名

通常,wordpress与单个主机名/域绑定,可以在其中提供页面和内容.例如,域存储在wp_options siteurl和home行中,如http://www.example.com.

您可以使用WP_SITEURL和WP_HOME PHP常量在wp-config.php中覆盖它.首先,您需要确保将主域(例如maindomain.com)正确设置为wp_options表行siteurl和home.然后你需要调整wp-config.php文件以使WP接受任何域:

define('WP_SITEURL','http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME','http://' . $_SERVER['HTTP_HOST']);

(如果需要,请务必在HTTP和HTTPS之间进行调整.

现在,当域指向服务器时,WP安装应该可以正常打开.您可以拥有任意数量的域,并且在访问时它们都会加载WP.

将页面重定向到另一个域

您可以使用.htaccess或WP代码进行重定向.如果重定向是应用程序/站点特定的,并且应该在任何地方工作,请尝试使用WP代码,因为更可能在源代码回购等中使用.

add_action('template_redirect',function () {
    $isMainDomain = strpos($_SERVER['REQUEST_URI'],'example.com') !== false;

    // We are on primary domain and on domain.com/b
    if ($isMainDomain && is_page('b')) {
        wp_redirect('http://secondary.com');
        exit;
    }

    // You need to validate child pages too and redirect where needed.
});

将其添加到插件或主题的functions.PHP中.现在,当有人访问主域名中的页面b时,他们将被重定向到secondarydomain.com.

要使用.htaccess实现此目的,您可以尝试以下方法

RewriteEngine on
RewriteBase /

// Redirect page `b` and all child pages to other domain.
RewriteCond %{HTTP_HOST} example.com$
RewriteRule ^b/(.*)$http://www.secondary.com/$1 [L,QSA,R=301]

从WP中的页面中删除页面slug

现在您有一位用户坐在http://www.secondary.com上,但是用户看到了WP安装的首页而不是页面b的内容.

使用.htaccess重写,如果需要,可以将这些域请求代理到某个“子目录”.

RewriteEngine on
RewriteBase /

# Something like the following should hide the `b` page/dir from requests.
RewriteCond %{HTTP_HOST} secondary.com$
RewriteRule ^(.*)$http://www.secondary.com/b/$1 [L,QSA]

该规则首先检查请求是否针对secondary.com域名.如果是,服务器会重写对wordpress页面b及其子页面的所有请求.

现在当有人打开http://www.secondary.com时,它应该映射到http://www.secondary.com/b并显示该页面.

(注意:我没有测试上述规则,因此可能会或可能不会按原样运行.

修复永久链接

现在你有关于页面b的固定链接有问题.获取固定链接返回http://www.example.com/b,它应该返回http://www.secondary.com.

为永久链接添加过滤器应解决该问题:

add_filter('post_link',function ($link,$post) {
    if (is_admin()) {
        // Don't change in admin,or editing pages may break
        return $link;
    }

    // Check here that if the $post is either page `b`
    // or a child of that page
    // then return the proper link instead.
    return 'http://www.secondary.com/foo/bar';
});

这是一种浅薄的方法,不考虑媒体或用户的行为方式.您需要验证两个域是否允许跨源请求,并且在需要时为正确的跨源会话正确保存用户会话cookie.

我还建议研究如何挂钩媒体上传过程,使两个WP安装使用相同的目录和数据.使用upload_dir过滤器可以获得相同的目录,并且附件的保存方式与帖子类似,因此您可以使用wp_insert_post或类似的I presme将上传内容复制到两个站点.

此外,您可以使用一些wp-config.php技巧将两个WP安装与单个用户表一起使用.

php – 网站部分的不同域名的更多相关文章

  1. wordpress添加Html5的表单验证required方法小结

    这篇文章主要介绍了wordpress添加Html5的表单验证required方法小结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. iOS设备上的Safari正在加载损坏的图像 – WordPress网站

    有问题的图像是JPEG,我把它们缩小到更小的尺寸.有问题的WordPress网站是响应式的,当我使用移动网络加载网站时就会发生这个问题.无线方面,它没有问题,但在3G/4G上,随机加载的图像,一些被破坏,图像交换位置,所以所有的css和js似乎搞砸了.我正在使用W3缓存来提高速度,但没有任何帮助.有些图像是半灰色,黑色,有时看起来有点破损.这只发生在带有safari浏览器的iOS设备上.其他人面临同样的问题?

  3. 在我的Android应用程序中从WordPress获取帖子

    我是Android开发的新手,我正在尝试创建一个只显示WordPress网站上的帖子类别和帖子的应用程序.请帮助我.解决方法您要做的是从wordpress创建某种RESTAPI,以返回对您的AndroidHTTP请求的JSON响应.要做到这一点,首先针对Android,您可以参考这篇文章:MakeanHTTPrequestwithandroid然后,对于服务器端(您的wordpress),您将不得

  4. 8个出色的WordPress SEO插件收集

    以下是几个一流的SEO插件列表,它们可以帮助我们提高WordPress站点在搜索引擎中的排名。

  5. 详解WordPress中用于更新和获取用户选项数据的PHP函数

    这篇文章主要介绍了WordPress中用于更新和获取用户选项数据的PHP函数,分别为对update_user_option()函数和get_user_option()函数用法的讲解,需要的朋友可以参考下

  6. WordPress用户登录框密码的隐藏与部分显示技巧

    这篇文章主要介绍了WordPress用户登录框密码的隐藏与部分显示技巧,需要的朋友可以参考下

  7. WordPress中设置Post Type自定义文章类型的实例教程

    这篇文章主要介绍了WordPress中设置Post Type自定义文章类型的实例教程,后台文章类型的设置是WordPress的一大特色,然而自带的文章类型往往并不够用,需要的朋友可以参考下

  8. WordPress开发中用于标题显示的相关函数使用解析

    这篇文章主要介绍了WordPress开发中用于标题显示的相关函数使用解析,讲解了single_cat_title函数和get_the_title函数和the_title函数的用法,需要的朋友可以参考下

  9. WordPress中调试缩略图的相关PHP函数使用解析

    这篇文章主要介绍了WordPress中调试缩略图的相关PHP函数使用解析,包括使用set_post_thumbnail_size来调整缩略图的大小,需要的朋友可以参考下

  10. WordPress中的shortcode短代码功能使用详解

    WordPress中的短代码能通过简单的函数集合创建宏代码来生成内容,方便函数调用,下面就让我们一起来看一下WordPress中的shortcode短代码功能使用详解.

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部