Я экспериментировал с Backbone для проекта, над которым я работаю, и у меня возникли проблемы с тем, как работает «pushState» Backbone, как бы я хотел.HTML5 PushState Regex Issue
У меня есть простой проект, состоящий из 4 видов и маршрутизатора. Я прохожу через id элементов, если это имеет значение в этом случае. Когда я перехожу к хэшу для одного из видов (http://example.com/backbonetest/ # step1), он отображается правильно, а URL-адрес изменен. Это то, что я ожидаю здесь, но проблема возникает, когда я пытаюсь перейти к одной и той же вещи без хеша в ней (http://example.com/backbonetest/ step1). Я получаю 404 на сервере (IIS), которого следует ожидать, поскольку страница не существует.
То, что я пытался делать весь день, это написать выражение регулярных выражений для IIS, которое будет захватывать и переписывать URL-адрес, удаляя фрагмент в конце URL-адреса, чтобы страница была правильно подана. Я предпочел бы просто переписать URL-адрес, чем иметь физический файл с тем же именем, поскольку содержимое страницы будет динамически генерироваться и потребует от скриптов получить контент в любом случае.
Проблема, с которой я столкнулся, может быть связана с тем, как мне нужно иметь папки/скрипты/стили, структурированные в файловой системе. Я надеялся иметь весь пример, содержащийся в папке /backbonetest/. Для скриптов, «backbonetest/scripts» и так далее.
Я сделал список URL-адресов, которые я тестировал свои регулярные выражения выражения против, и результаты, которые я пытался добиться:
Input: Output: 2 a2 ab2 ab22 step2 script.js script.js scripts/ scripts/ 555/stuff 555/stuff scripts/script.js scripts/script.js
Edit: Я с тех пор нашел, что url, который используется, не включает предыдущую косую черту, , поэтому решение Qtax не работает в IIS. Новая структура ввода показана выше.
Код «/ 555/stuff», который я ожидал бы до 404, как обычно. Я только хочу переписать url, если нет подкаталогов, отличных от текущего, и если url не ссылается на явный файл (например, с расширением).
Я весь день чистил сетку для решения этого вопроса, а также экспериментировал с regexr, но не смог найти правильное решение моей проблемы. Не найдя нигде нигде, я думаю, что я должен смотреть на это неправильно ...
Может ли кто-нибудь помочь мне, пожалуйста?
не знает IIS, но регулярное выражение перепишет вы можете использовать это '^/[^ /. ] + $ 'to'/'. – Qtax
Это отлично работает с моими тестовыми данными и с тестером в диспетчере IIS, но по какой-либо причине URL-адреса либо не пойманы должным образом, либо они были переписаны неправильно. – brins0
Я узнал, что вход, который я дал здесь, не совсем то, что использует IIS для правил перезаписи, объясняя, почему он не работает. Что мне нужно изменить в предложенном выражении Qtax, чтобы заставить его работать для новой строки ввода? – brins0