使用 .htaccess 将 root/dir 重定向到 root/new/dir
Redirect root/dir to root/new/dir with .htaccess
我有一个 directadmin 主机和域,我在主机中创建目录,每个目录中有一个 index.html 和 url,如下所示:
example.com/sdeds
后来,我在主机上安装了一个WordPress,并折叠了这样的新目录:
example.com/2018/asdfa
但是我的旧目录在根目录中,非常草率。我想创建新目录并移动它们,但不要错过客户拥有的地址,因为地址是作为二维码提供给客户的。这个问题有解决办法吗?
如果您想将根目录中的所有内容(不包括 /2018/asdfa
目录(包含 WordPress)重定向到新的子目录,那么您可以在 .htaccess
的顶部执行类似以下操作文件:
RewriteEngine On
RewriteRule !^2018/asdfa /newdirectory%{REQUEST_URI} [R=302,L]
UPDATE: What if I have more than one directory to excluding? like: 2018, 2019, 2020
如果它只是您提到的目录,那么最简单的方法是在正则表达式中使用 alternation。例如:
RewriteRule !^20(18|19|20)/asdfa /newdirectory%{REQUEST_URI} [R=302,L]
(18|19|20)
子模式匹配 18
、19
或 20
。
如果您想匹配任何看起来像 "recent" 年份的东西,那么您可以使用更通用的模式。例如:
RewriteRule !^20[12]\d/asdfa /newdirectory%{REQUEST_URI} [R=302,L]
20[12]\d
匹配字符串(即目录)2010
到 2029
(含)。 [12]
是匹配 1
或 2
的字符 class。而\d
是一个shorthand字符class匹配任何数字0-9(与[0-9]
相同)。
我有一个 directadmin 主机和域,我在主机中创建目录,每个目录中有一个 index.html 和 url,如下所示:
example.com/sdeds
后来,我在主机上安装了一个WordPress,并折叠了这样的新目录:
example.com/2018/asdfa
但是我的旧目录在根目录中,非常草率。我想创建新目录并移动它们,但不要错过客户拥有的地址,因为地址是作为二维码提供给客户的。这个问题有解决办法吗?
如果您想将根目录中的所有内容(不包括 /2018/asdfa
目录(包含 WordPress)重定向到新的子目录,那么您可以在 .htaccess
的顶部执行类似以下操作文件:
RewriteEngine On
RewriteRule !^2018/asdfa /newdirectory%{REQUEST_URI} [R=302,L]
UPDATE: What if I have more than one directory to excluding? like: 2018, 2019, 2020
如果它只是您提到的目录,那么最简单的方法是在正则表达式中使用 alternation。例如:
RewriteRule !^20(18|19|20)/asdfa /newdirectory%{REQUEST_URI} [R=302,L]
(18|19|20)
子模式匹配 18
、19
或 20
。
如果您想匹配任何看起来像 "recent" 年份的东西,那么您可以使用更通用的模式。例如:
RewriteRule !^20[12]\d/asdfa /newdirectory%{REQUEST_URI} [R=302,L]
20[12]\d
匹配字符串(即目录)2010
到 2029
(含)。 [12]
是匹配 1
或 2
的字符 class。而\d
是一个shorthand字符class匹配任何数字0-9(与[0-9]
相同)。