我尝试使用旧服务器上old.domain.tld/project
目录中的domain.tld/subfolder/project
重写从.htaccess
到project
的网址。我想我需要检查主机名,这样规则才适用于旧服务器,即使.htaccess文件也放在新服务器上。
我已尝试过以下.htaccess
文件:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old\.domain\.tld$ [NC]
RewriteRule ^(.*)$ https://domain.tld/subfolder/project/$1 [R=301,L]
这适用于https://old.domain.tld/project/index.php?p=q
(重定向到https://domain.tld/subfolder/project/index.php?p=q
)等网址,但不包含没有尾部斜杠的网址,https://old.domain.tld/project
最终会被重定向到https://domain.tld
。很奇怪!如何使这两种类型的URL工作?
我尝试了一种相当不同的方法,使其成为通用重定向,即使文件夹名称不是project
也可以包含,但这也有同样的问题:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old\.domain\.tld$ [NC]
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteRule . https://domain.tld/subfolder/%1 [R=301,L]
在服务器范围的配置中,斜杠会附加到索引文件的所有请求,例如old.domain.tld/project
被重定向到old.domain.tld/project/
。这会导致问题吗?