Я предполагаю, что Ваш класс находится в различном пространстве имен. Канонический способ решить это состоял бы в том, чтобы использовать класс ресурсов и ресурс со строгим контролем типов:
ProjectNamespace.Properties.Resources.file
Использование менеджер ресурсов IDE для добавления ресурсов.
Что ж, у меня есть решение, но оно мне не очень нравится ... Это заменит все подчеркивания дефисами, а перенаправления - кодом состояния 301, что означает «Переехал навсегда». (конечно, вы также можете использовать его для замены любых других символов)
Кроме того, это должно быть первое правило (например, в файле .htaccess), потому что первая строка на самом деле представляет собой цикл, который снова проходит через все правила (из-за флага N)
RewriteRule ^ / redirect / from /([^_ provided*)\_(.*)$ / redirect / from / thisisthethingwedontneed $ 1- $ 2 [N, L]
RewriteCond% {REQUEST_URI} (thisisthethingwedontneed) +
RewriteRule (thisisthethingwedontneed) + (. *) / Url / to / redirect / to / $ 2 [NC, QSA, R = 301]
Пояснение:
'redirect / form': базовый путь или все, что вы хотите перенаправить. Он должен быть включен во вторую часть, чтобы иметь возможность сопоставить его при следующем запуске цикла
первая часть: 'заменить (не подчеркивание), за которым следует подчеркивание, за которым следует (что угодно)' захват первого и последнего часть для дальнейшего использования
вторая часть: вставьте текст, который, вероятно, не найден в ваших URL-адресах, перед захваченной первой частью, затем добавьте первую часть, затем тире, а затем флаги второй части
: N: после этого, продолжайте снова, снова выполните все правила перезаписи, но с измененным URL-адресом L: если было совпадение, остановитесь здесь (2 флага вместе фактически делают то, что вы ожидаете от первого.)
Условие для следующего правила: выполнить следующее правило, только если ранее определенная строка может быть найдена в запросе uri, по крайней мере, один раз
Первая часть: сопоставить и захватить любые вхождения смешной строки и захватить все после него
Вторая часть: добавьте вторую часть к любому пути, на который мы хотим перенаправить (и забудьте о забавной строке)
Флаги: NC: без учета регистра QSA: добавить любую строку запроса R = 301: перенаправление с перемещением навсегда
и возвращение UIViewRoot
для восстановленного представления. Если возврат от ViewHandler.restoreView ()
равен нулю, выбросить ViewExpiredException
с соответствующим сообщением об ошибке. javax.faces.application.ViewExpiredException - это
FacesException`, которое должно быть создано, чтобы сообщить приложению, что ожидаемое представление не было возвращено для идентификатора представления. Приложение может выбрать выполнение определенного действия на основе этого исключения.
Чтобы исключение ViewExpiredException
выдавалось по истечении срока действия представления, удалите com.sun.faces.enableRestoreView11Compatibility
параметр или установите для него значение false
.
Пространство имен com.sun
предполагает, что параметр является параметром Sun / Mojarra и производным параметром, зависящим от реализации, поэтому он, вероятно, не будет работать со всеми реализациями JSF.