Я использую tuckey rewrite filter сделать некоторые правила для отображения URL, например, получили следующее:ява URL Rewrite правила фильтрации
<urlrewrite>
<rule>
<from>^/intro</from>
<to>w?page=intro</to>
</rule>
<rule>
<from>^/([a-z0-9]+)/([a-z0-9-]+)$</from>
<to>/w?category=$1&post=$2</to>
</rule>
</urlrewrite>
На втором правиле я сопрягая что-то вроде java/variables
, все работает, но ...
1. Как я могу соответствовать все, что не в правилах, я хочу, чтобы перенаправить страницу, как unknown/page/will/not/be/found
или /introduction
к пользовательскому URL.
Для длинных ссылок (более 2-х слов, как Java/переменные/другие) это работает отлично, но я сомневаюсь, что его лучшее решение, до сих пор нету найдено /introduction
:
<rule>
<from>^/([a-z0-9]+)/([a-z0-9-]+)/([a-z0-9-/]+)$</from>
<to>/w?page=$1+$2+$3</to>
</rule>
Последнее регулярное выражение ([a-z0-9-/]+)
принимает /
, как string и отправляет его в качестве параметра сервлета.
2. Нет ли способа поймать все URL-адреса сразу после домена? Например, сразу после /
на mydomain.com/
, я попытался следующий, но в конечном итоге в бесконечный цикл ошибки:
<rule>
<from>^/([a-z0-9-/]+)$</from>
<to>w?page=$1</to>
</rule>
ПРОБОВАЛИ:
<rule>
<from>^/([a-z0-9-/]+)$</from>
<to>/w?page=$1</to>
</rule>
Чтобы поймать все, но ни один не похоже на работу.
не кажется, работает:. S – Alpha2k
Это должно поймать все, как регулярное выражение '*' матчи любое количество символов. Вы могли бы попробовать prepending ^, чтобы отметить начало регулярного выражения, а $ для конца '^. * $' ... Если вы проверяете страницу статуса перезаписи, показано, что это правило действует? – Kieran
Просто понял, что нам нужно исключить страницу, на которую мы перенаправляемся, или мы закончим бесконечный цикл ... просто обновил ответ, чтобы это отразить. Надеюсь, что это работает для вас! – Kieran