您能解释一下 RewriteRule 中的替换吗

您能解释一下 RewriteRule 中的替换吗

我在 .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/

相关内容