Php 在htaccess中复制$1,但仍然有效为什么?

Php 在htaccess中复制$1,但仍然有效为什么?,php,.htaccess,web,Php,.htaccess,Web,我想删除我网站中的.php和www。环顾四周,发现重复变量$1 RewriteEngine On RewriteRule ^articles/([a-zA-Z0-9_-]+)-([0-9]+) article.php?id=$2 RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L] RewriteCond %{HTTP_HOST} !^example.com$ [NC] RewriteRule ^(.*)

我想删除我网站中的
.php
www
。环顾四周,发现重复变量
$1

RewriteEngine On
RewriteRule ^articles/([a-zA-Z0-9_-]+)-([0-9]+) article.php?id=$2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

它可以工作,但有人可以向我解释。

$1
$2
(等等)不是整个文件的变量。相反,它们是对重写规则中捕获组的引用。(捕获组是正则表达式中位于括号中的部分。)

重复变量
$1
是什么意思?我有2$1 RewriteRule^([^\.]+)$$1.php[NC,L]和这个RewriteRule^(.*)[L,R=301]
这是两个不同的、独立的规则。