Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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
Regex 将旧域重定向到新域';网站主页_Regex_Apache_.htaccess_Redirect_Seo - Fatal编程技术网

Regex 将旧域重定向到新域';网站主页

Regex 将旧域重定向到新域';网站主页,regex,apache,.htaccess,redirect,seo,Regex,Apache,.htaccess,Redirect,Seo,我想把旧域名(但不是主页,因为还有内容)上的所有内容重定向到新域名的主页 重要提示:但我不想重定向旧主页。只有其他子文件夹,如domain.com/* 如何做到这一点?我认为这个代码行不通 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond% {HTTP_HOST} ^ olddomain.com $ [ALEBO] RewriteRule (. *) $ Http://www.newdomain.com/$1 [R = 301

我想把旧域名(但不是主页,因为还有内容)上的所有内容重定向到新域名的主页

重要提示:但我不想重定向旧主页。只有其他子文件夹,如domain.com/*

如何做到这一点?我认为这个代码行不通

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond% {HTTP_HOST} ^ olddomain.com $ [ALEBO]
RewriteRule (. *) $ Http://www.newdomain.com/$1 [R = 301, L]
</ IfModule>

重新启动发动机
RewriteCond%{HTTP_HOST}^olddomain.com$[ALEBO]
重写规则(.*)$Http://www.newdomain.com/$1[R=301,L]

您可以在站点根目录中使用此规则。htaccess:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?olddomain\.com$ [NC]
RewriteRule . http://www.newdomain.com%{REQUEST_URI} [R=301,L,NE]

在规则或条件中的任何位置都没有空格。另外,
RewriteRule
中的一个点确保与登录页以外的任何内容匹配。

为什么在
^olddomain.com$
中放置空格?还可以尝试转义
谢谢,重定向工作正常。但是现在CSS和JS无法加载到主页上,我在加载样式时遇到了503个错误。应该是什么问题?当我删除重定向时,它工作正常。所以问题在于重定向正则表达式,我想:)同样,当旧域上没有像olddomain.com/test-site这样的页面时,它会重定向到newdomain.com/test-site,并得到404g错误。如果olddomain.com上没有网站(olddomain上获得404),是否可以重定向到newdomain.com主页?与olddomain上的页面不同?抱歉,我不明白这里的重定向正则表达式是什么?您还可以添加
RewriteCond%{REQUEST_FILENAME}-f
,以确保只将现有文件重定向到新域。