Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
.htaccess 如何将子文件夹重定向到新域而不是根目录?_.htaccess - Fatal编程技术网

.htaccess 如何将子文件夹重定向到新域而不是根目录?

.htaccess 如何将子文件夹重定向到新域而不是根目录?,.htaccess,.htaccess,我正在使用以下代码将站点重定向到新域: RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !newdomain.com$ [NC] RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301] 代码正在运行,但问题是我想重定向所有子文件夹,但不重定向根文件夹,例如: 我想重定向: olddomain.com/some-folder->newdomain.com/some-fold

我正在使用以下代码将站点重定向到新域:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !newdomain.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301] 
代码正在运行,但问题是我想重定向所有子文件夹,但不重定向根文件夹,例如:

我想重定向: olddomain.com/some-folder->newdomain.com/some-folder

但不是 olddomain.com->newdomain

我想用404将根目录重定向到newdomain.com

原因是newdomain.com已经存在了几年,我想关闭olddomain.com并将所有文章重定向到new one和根目录404

如果有人有更好的建议,现在就告诉我


谢谢

您就快到了,但您的重写规则是匹配0个或多个字符(
*
),然后重写,您需要1个或多个字符(
+
)。试试这个:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !newdomain.com$ [NC]
RewriteRule ^(.+)$ http://www.newdomain.com/$1 [L,R=301] 

记住,你的浏览器可能缓存了一些重定向;因此,如果您需要清除缓存或加载另一个浏览器来测试这一点,请不要感到惊讶。

进行匹配,
^(.*)$
使用+而不是*可以告诉我如何处理olddomain吗?我应该用404将旧域重定向到新域还是其他什么?