繁体   English   中英

通配符重定向链接转到同一域上的根目录下的子文件夹

[英]Wildcard redirect links going to root to subfolder on same domain

我已将网站从www.example.com移至www.example.com/subfolder并使用.htaccess文件,我想将旧链接重定向到www.example.com到www.example.com/subfolder。 我目前的.htaccess看起来像这样:

RewriteEngine on
RewriteCond %{HTTP_HOST} example\.com [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ /subfolder/$1 [L]

我也尝试过以下方法:

#RewriteCond %{REQUEST_URI} !^/subfolder/
#RewriteRule ^.*$ http://www.example.com/subfolder%{REQUEST_URI} [R=301,QSA,L]

我一直在重定向循环或重定向不工作,导致错误404。

你在使用wordpress吗? 或者你只是移动一般?

如果你移动一般这个单行将工作

RedirectMatch ^/$ /subfolder/

来自这里的原始答案

这是我目前正在使用的另一种解决方案。

不要复制和粘贴 您需要将DOMAIN (不带.com)和SUBFOLDER 替换为您想要的名称。

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} !^/subfolder/

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.

# Rewrite all those to insert /folder
RewriteRule ^(.*)$ /subfolder/$1 [L]

您可以在站点根目录.htaccess( subfolder父目录)中使用此规则作为第一条规则

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(?:www\.)?example\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(?!subfolder/)(.*)$ /subfolder/$1 [L,NC,NE,R=301]

# remaining rules go here

测试此更改时,请务必完全清除浏览器缓存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM