Закрыть.Вместо этого я бы сказал:
preg_match("/^(?:www\.)?(?:".$host.")(?:\/(?:index\.php)?)?(?:\?.*)?$/", $url, $matches)
Различия здесь следующие:
- Экранирование
.
символы, обозначенные буквальными точками (точка обычно означает «любой символ, кроме * 1008»).* или \r
"в регулярных выражениях). - Требование
/
перед index.php
, если присутствует index.php
. - При желании можно разрешить параметры GET (часть
\?.*
). - Группы без захвата, так как вам, кажется, не интересно проходить захват.
Кроме того, это выглядит хорошо для меня.