Директива RewriteRule

Подскажите, пожалуйста, что означает .* после директивы RewriteRule и какая разница между .* и (.*)

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_URI} ^(.*)/dir/test.php$
    RewriteRule .* - [F,L]
</IfModule>

Ответы (1 шт):

Автор решения: Евгений Платов

.* это регулярное выражение которое анализирует ваш url. точка означает любой символ, * повторение от 0 до бесконечности. По сути .* любое количество любых символов (все возможные запросы). Круглые скобки используются в регулярных выражениях для группировки условий. В данном случае никакой разницы в себе не несут. В других ситуациях можно обращаться к группам через знак $

Например правило

RewriteRule ^search /(.*)$ /search.php?q=$1

преобразует запрос search/qwerty в /search.php?q=qwerty

→ Ссылка