Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 将域A中的所有子文件夹重定向到域B中的同一子文件夹_Wordpress_.htaccess_Redirect_Prestashop_Http Status Code 301 - Fatal编程技术网

Wordpress 将域A中的所有子文件夹重定向到域B中的同一子文件夹

Wordpress 将域A中的所有子文件夹重定向到域B中的同一子文件夹,wordpress,.htaccess,redirect,prestashop,http-status-code-301,Wordpress,.htaccess,Redirect,Prestashop,Http Status Code 301,我有2个域,需要将域A中的所有子文件夹重定向到域B中的同一子文件夹 域A=Wordpress 域B=Prestashop 1.7 我需要完成的示例: https://domainA.com/subfolder1->301->https://domainB.com/subfolder1 域a中有很多子文件夹,所以我需要我的规则是通用的 你能告诉我正确的方向吗?你必须编辑wordpress域网站的htaccess文件 添加如下所示的htaccess代码 RedirectMatch 301 ^/sub

我有2个域,需要将域A中的所有子文件夹重定向到域B中的同一子文件夹

域A=Wordpress
域B=Prestashop 1.7

我需要完成的示例:

https://domainA.com/subfolder1
->301->
https://domainB.com/subfolder1

域a中有很多子文件夹,所以我需要我的规则是通用的


你能告诉我正确的方向吗?

你必须编辑wordpress域网站的htaccess文件

添加如下所示的htaccess代码

RedirectMatch 301 ^/subfolder1/(.*)$ https://domainB.com/subfolder1/$1
它将被重定向到


你一定得试试。我希望这能有所帮助。谢谢

您必须编辑wordpress域网站的htaccess文件

添加如下所示的htaccess代码

RedirectMatch 301 ^/subfolder1/(.*)$ https://domainB.com/subfolder1/$1
它将被重定向到


你一定得试试。我希望这能有所帮助。谢谢

我理解这个问题,您实际上想将所有内容从一个域重定向到另一个域。可以这样做:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domainA\.com$
RewriteRule ^ https://domainB.com%{REQUEST_URI} [QSA,R=301,END]
从一个
R=302
临时重定向开始是有意义的,只有当您将所有内容整理到您满意的程度后,才可以将其更改为一个
R=301
永久重定向。这样可以防止缓存问题

如果为主机“domainA.com”启用了这些规则,则可以在分布式配置文件(“.htaccess”)中实现这些规则。不过,如果您有权访问真实http服务器的主机配置,您应该更愿意使用它


更新: 在您的评论中,您确认您确实只想重定向“子文件夹”,而不是所有资源。我把“子文件夹”理解为带有路径组件的URL,路径组件有一个“子文件夹”,后跟“/”和其他一些资源。虽然这根本不必与服务器端文件系统中的实际文件夹相对应

在这种情况下,此变体应适用于:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domainA\.com$
RewriteRule ^/?[^/]+/ https://domainB.com%{REQUEST_URI} [QSA,R=301,END]

显然,上述提示同样适用于…

我理解这个问题,即您实际上希望将所有内容从一个域重定向到另一个域。可以这样做:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domainA\.com$
RewriteRule ^ https://domainB.com%{REQUEST_URI} [QSA,R=301,END]
从一个
R=302
临时重定向开始是有意义的,只有当您将所有内容整理到您满意的程度后,才可以将其更改为一个
R=301
永久重定向。这样可以防止缓存问题

如果为主机“domainA.com”启用了这些规则,则可以在分布式配置文件(“.htaccess”)中实现这些规则。不过,如果您有权访问真实http服务器的主机配置,您应该更愿意使用它


更新: 在您的评论中,您确认您确实只想重定向“子文件夹”,而不是所有资源。我把“子文件夹”理解为带有路径组件的URL,路径组件有一个“子文件夹”,后跟“/”和其他一些资源。虽然这根本不必与服务器端文件系统中的实际文件夹相对应

在这种情况下,此变体应适用于:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domainA\.com$
RewriteRule ^/?[^/]+/ https://domainB.com%{REQUEST_URI} [QSA,R=301,END]

显然,上述提示同样适用于…

只是一种替代解决方案

它指向两个不同的文件系统

在这种情况下,您不需要检查请求的主机名的附加条件。(除非您在此帐户上托管其他域?)

为了检测请求的URL路径是否包含初始子文件夹,您只需检查URL路径是否包含斜杠(
/
),而不必显式匹配第一个路径段,因为这不会在替换字符串中使用

例如:

RewriteEngine on
RewriteRule / https://domainB.com%{REQUEST_URI} [R=301,L]
.htaccess
(目录上下文)中,由
重写规则
模式匹配的URL路径不以斜杠开头,因此,如果在URL路径的任何位置出现斜杠,我们可以假定必须存在“子文件夹”。或者,有路径信息,但由于这是一个WordPress站点(我假设您使用的是“pretty permalinks”,否则现有的答案也不会起作用),那么您在任何合法URL上都没有路径信息


此重定向需要靠近
.htaccess
文件的顶部,在
#BEGIN WordPress
部分之前。

只是一种替代解决方案

它指向两个不同的文件系统

在这种情况下,您不需要检查请求的主机名的附加条件。(除非您在此帐户上托管其他域?)

为了检测请求的URL路径是否包含初始子文件夹,您只需检查URL路径是否包含斜杠(
/
),而不必显式匹配第一个路径段,因为这不会在替换字符串中使用

例如:

RewriteEngine on
RewriteRule / https://domainB.com%{REQUEST_URI} [R=301,L]
.htaccess
(目录上下文)中,由
重写规则
模式匹配的URL路径不以斜杠开头,因此,如果在URL路径的任何位置出现斜杠,我们可以假定必须存在“子文件夹”。或者,有路径信息,但由于这是一个WordPress站点(我假设您使用的是“pretty permalinks”,否则现有的答案也不会起作用),那么您在任何合法URL上都没有路径信息


此重定向需要靠近
.htaccess
文件的顶部,在
#BEGIN WordPress
部分之前。

谢谢!是的,这是可行的,但我的问题是:我需要一个通用规则,将所有子文件夹从域a重定向到域B中的同一个子文件夹。再次感谢。如果我理解正确,使用该规则,我需要显式地添加具有该模式的每个子文件夹。是否存在将域A中的所有子文件夹指向域B中相同子文件夹的一般规则?我是说。。。所有这些都没有为它们中的每一个添加规则。谢谢你的耐心!谢谢是的,这是可行的,但我的问题是:我需要一个通用规则,将所有子文件夹从域a重定向到域B中的同一个子文件夹。再次感谢。如果我理解正确,wi