【问题标题】:How to redirect/rewrite directory to another on subdomain?如何将目录重定向/重写到子域上的另一个目录?
【发布时间】:2019-08-22 02:08:21
【问题描述】:
我正在尝试重写域的 url。
www.example.com/dir1/ 到 www.example.com/dir2/
和
sub1.example.com/dir1/ 到 sub1.example.com/dir2/
问题是 sub1 是一个 WordPress 多站点,它与根域共享相同的 htaccess,并且 /dir1/ 的重定向会将两个域重定向到 https://www.example.com/dir2/
只是在 Stack Overflow 上找不到答案,而且这是一个流量很大的现场网站,我不能把它炸毁。
【问题讨论】:
标签:
wordpress
apache
.htaccess
redirect
http-status-code-301
【解决方案1】:
确保您的 apache 配置中的两个目录都启用了 AllowOverwrite ALL。
<Directory /var/www/example.com>
AllowOverride All
</Directory>
<Directory /var/www/example.com/sub1>
AllowOverride All
</Directory>
添加后,在example.com 的根目录下创建.htaccess 文件
这会将example.com/dir1/ 重定向到example.com/dir2/
RewriteEngine on
Redirect 301 /dir1 http://example.com/dir2
然后,在 wordpress 所在的子目录文件夹中创建另一个 .htaccess 文件。
这会将sub1.example.com/dir1/ 重定向到sub1.example.com/dir2/
RewriteEngine on
RewriteRule ^/?dir1/(.*)$ /dir2/$1 [R,L]
之后,
sudo service apache2 restart
sudo a2enmod rewrite