Ваш вопрос все еще немного расплывчат в отношении того, что именно вы ожидаете, но после того, как вы опубликовали свой .htaccess
, я сделаю удар по нему и посмотрю, получу ли я то, что вы искали.
Самая очевидная причина того, что ваш RewriteRule
не работает, заключается в том, что ваш тестовый шаблон не соответствует URL, который вы указали в качестве примера, поскольку ваш RewriteRule
требует завершающего слеша (и соответствует только одному символу). до этого). Кроме того, если вы поместите его после правил, которые у вас есть в файле .htaccess
, он никогда не будет совпадать, поскольку запрос уже будет переписан в index.php
.
.
Я думаю, что вы хотите что-то подобное ...
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} =www.example.com [NC]
RewriteRule ^.*$ http://example.com/$0 [L,R=301]
# Make sure we end and force the redirect so %{REQUEST_FILENAME} gets changed
RewriteRule ^[a-zA-Z0-9-_+^/]+$ search_results/?action=search&username[equal]=$0 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php
Однако, если каталог search_results/
не существует, то он все равно будет переписан на index.php
, так что я не уверен, какова будет цель перенаправления в этом случае. И, если он существует, так как ваш тестовый шаблон в значительной степени соответствует тому, что я ожидал увидеть в пути к сайту, тогда все будет переписано в каталог search_results/
, поэтому очень мало (если вообще что-либо) окажется в вашей корень сайта index.php
.
Исходя из этого, я чувствую, что, возможно, есть и другие критерии, которые вы, возможно, не учли, но я могу ошибаться.