URL переписать на смарт-сайте? - PullRequest
0 голосов
/ 22 июля 2010

Я хотел добиться этого

example.com/search_results/?action=search&username[equal]=PorscheSA

до

example.com/PorscheSA

Я использовал .htaccess для многих веб-сайтов, чтобы достичь этого, но так как этот веб-сайт основан на умных способностях, он, похоже, не работает. Любая помощь будет высоко ценится.

Хорошо, это файл .htaccess:

RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

Options +FollowSymlinks
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* ./index.php

Чтобы добиться следующего, я попробовал это:

RewriteRule ^([a-zA-Z0-9-_+^/])/$ /search_results/?action=search&username[equal]=$1

и ничего не произошло.

1 Ответ

1 голос
/ 22 июля 2010

Ваш вопрос все еще немного расплывчат в отношении того, что именно вы ожидаете, но после того, как вы опубликовали свой .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.

Исходя из этого, я чувствую, что, возможно, есть и другие критерии, которые вы, возможно, не учли, но я могу ошибаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...