Wordpress 将域A中的所有子文件夹重定向到域B中的同一子文件夹
我有2个域,需要将域A中的所有子文件夹重定向到域B中的同一子文件夹 域A=WordpressWordpress 将域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
域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