Apache2, Ubuntu, /etc/apache2/sites-available/default.confAliasMatch: Матч на всех, за исключением, если хэш
требуется только номер 1, чтобы быть алиасом, номер 2 не делает. мне нужно AliasMatch регулярное выражение, которое опускает любой URL с ^/#, иначе проходит $ 1 в новый/путь/$ 1
- url.com/some_dir
- url.com/#/some_dir
Я пробовал следующие подходы: Первый переадресовывает как 1, так и 2, потому что (. *). Вторые не работают вообще. Третий тоже не работает, но я пытался сопоставить буквенно-цифровые символы, чтобы по умолчанию пропускать #, он также не работает.
AliasMatch "(?i)^/(.*)$" "/new/path/$1" AliasMatch "(?i)^((?!#).)*$" "/new/path/$1" AliasMatch "^/[a-zA-Z0-9_-]+$" "/new/path/$1"
Как опустить URL 2 в то же время позволяя URL-быть Связан надлежащим образом?
Я понимаю большинство из них; но по какой-то причине я просто не могу решить эту проблему. Я пытаюсь захватить все после косой черты в примере 1, если он не начинается с символа #. Я пробовал различные формы вашего предлагаемого регулярного выражения, безрезультатно. Я думаю, что это довольно близко .. –
@MattBunch Я добавил еще один. Он должен быть лучше и быстрее, чем два других, и он работает в моих тестах. (Я думаю, что ваш аромат регулярного выражения достаточно стандартный, чтобы работать с ним.) – Laurel
ближе. :) теперь проблема в том, что apache aliases url, но добавляет /index.html, тогда регулярное выражение снова запускается и добавляет /index.html/index.html и т. д., так что нам нужно добавить еще одно условие только захватить то, что находится между domain.com/ [это]/[а не это]/[или это]/[и т. д.] Интересно, не лучший ли это подход к решению моей проблемы. (FYI apache2 использует "Perl Compatible Regular Expression словарь") Регулярное выражение работает при тестировании на этом сайте: [ссылка] (http://www.regexplanet.com/advanced/perl/index.html) –