2016-12-31 75 views
0

我感到困惑的這條規則:重寫規則 - 光標^ - 匹配

RewriteCond %{HTTPS} !=on 

RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,QSA] 

這怎麼可能,如果它是一個位置錨插入符可以匹配整個URL?

我找不到任何官方聲明,它是一個捕獲所有符號。

回答

1

插入符號意味着看着一條線的開頭

插入符號匹配,因爲正則表達式只需要在URL中找到的某處。它不需要匹配整個URL。

由於典型的正則表達式只比較URL的開頭,因此不需要查看URL的每個字符,因此此設計決策可以提供更多性能。

+0

Thx很多爲您的答案。但是如何在沒有像這樣的parttern定義的情況下匹配任何內容:^(。+) – Masi

+0

每個字符串都有一個開始。脫字符匹配_開始時不消耗角色。所以即使是空字符串也是匹配'^'。它也匹配'^ $',因爲它從索引0開始到索引0結束。 –

+0

關於你的回答,我希望在這個網站https://regex101.com/上指出插入符應該突出顯示所有內容。但它不... – Masi