我在 .htaccess 文件中有以下语句
RewriteCond %{HTTP_HOST} ^myOldDomain\.com$ [NC]
RewriteRule ^(.*)$ https://myNewDomaink.com/$1 [R=301,L]
它运行良好。我基本上找到了一些示例代码并根据我的特定目的进行了修改。我不太明白的是:
为什么 $1 指的是主机名后面提供的 URL 部分 - 有关这方面的文档在哪里?RewriteCond 中没有反向引用。
答案1
$1
指的是.*
-regex 匹配的所有内容。在大多数情况下,这将是斜线后的所有内容。您可以在以下网站上测试这些查询:Rubular.com以及显示的匹配项数量,这些是您可以用作变量的数字。您必须将这些“组”括在括号中才能将它们用作变量。
答案2
经过进一步的阅读和实验,看起来 $1 引用了 RewriteRule 的反向引用。由于重写规则和条件默认为 URI 字符串,因此重写规则表示:
获取 URI 字符串并将其添加到https://myNewDomainurl.com/