Создание простого правила для переписывания дружественного URL на физический URL - PullRequest
0 голосов
/ 28 сентября 2011

Я не могу обернуться вокруг переписывания URL. То, что я хочу сделать, кажется очень простым, но у меня проблемы с получением желаемых результатов.

Я хотел бы разрешить пользователям вводить www.mysite.com/search/real с необязательным / в конце. Это приведет их к www.mysite.com/content/search_real_property.asp

Вот и все. Вот правило, которое у меня есть сейчас. Проблема в том, что он будет продолжать складываться.

RewriteRule ^(search) content/search_real_property.asp

Так что это будет работать /search/real, но так будет search/real/search/real/search/real/ и другие.

1 Ответ

1 голос
/ 28 сентября 2011

Предполагая, что других проблем нет, вы включили механизм перезаписи (RewriteEngine On) и добавляете перезапись в httpd-vhosts.conf или в файл .htaccess в корень веб-дерева (так что любые проблемы с путями будут решены) ... тогда проблема заключается только в сопоставлении с шаблоном регулярного выражения.Хотя я немного озадачен тем, что ASP работает на сервере Apache (предполагая, что мы переписываем этот мод IS).

Итак, все, что вам действительно нужно, - это прекратить сопоставление - что-тонапример:

RewriteEngine On
RewriteRule ^search/real/?$ /content/search_real_property.asp

Это исправит его в / search / real (с косой чертой или без нее, символ? соответствует предыдущему символу 0 или 1 раз) в /content/search_real_property.asp.Поскольку знак $ обозначает терминатор строки (по сути, EOL), после "real" не должно быть ничего (кроме, возможно, 1 косой черты).

Для большей гибкости вам может понадобиться посмотреть, что вы на самом деле можете делать срегулярные выражения, например ...

RewriteEngine On
RewriteRule ^search/([^/]*)/?$ /content/search_real_property.asp?query=$1

, которые позволят вам взять любую строку и передать ее в адресную строку как переменную с именем query (Request.QueryString ('query') IIRC).

Попробуйте: http://www.regular -expressions.info / для получения дополнительной информации.

...