Вот что у меня в .htaccess
файл.
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(run=[a-z0-9A-z]{13})$
RewriteRule %{QUERY_STRING} \? [L]
Все, что я делаю, это переписываю QUERY_STRING
для всех QUERY_STRING
похожий на run=4f13665700694
и ничего не делать. Пример URL: http://thinkingmonkey.me/runs/?run=4f13665700694
. Итак, RewriteCond должен соответствовать. Но вышеперечисленное не работает.
Но картина казалась верной. Поскольку, обе preg_match
& RewriteRule
использовать PCRE - Perl Compatible Regular Expressions
.
Я пробовал использовать preg_match
.
$subject = "run=4f13665700694";
$pattern = "/^(run=[a-z0-9A-z]{13})$/";
echo preg_match($pattern, $subject);
И, как исключение, приведенное выше будет выводить:
1
то есть успешный матч.
Я не понимаю, почему. Что мне здесь не хватает?
Хорошо, это потребует запроса на /runs/
с 13-значным буквенно-цифровым run
в качестве единственного параметра в строке запроса, разделите строку запроса и перепишите на /runs/index.php
:
RewriteCond %{QUERY_STRING} ^run=\w{13}$
RewriteRule ^/runs/?$ /runs/index.php? [L]