URLRewriteFilter и FW1

Я использую Framework One (FW/1), Coldfusion 10 и пытаюсь использовать Tuckey URLRewriteFilter для удаления index.cfm из URL-адреса. У меня для generateSES установлено значение true, а для SESOmitIndex значение true в настройках FW/1.

У меня есть следующий код в моем файле urlrewrite.xml

<rule>
    <from>^/(.*)$</from>
    <to last="true">/index.cfm/$1</to>
</rule>

Когда я просматриваю приложение, я получаю ошибку 404, поэтому я сбросил область CGI в своем методе onMissingTemplate() и вижу следующие ключи, которые привлекли мое внимание.

PATH_INFO m/
PATH_TRANSLATED C:\Coldfusion10\cfusion\wwwroot\index.cf
CF_TEMPLATE_PATH  C:\Coldfusion10\cfusion\wwwroot\index.cf
SCRIPT_NAME //index.cf

Кажется, что он разделяет запрос/контекст и т. д. Я видел здесь несколько других сообщений на SO, но без каких-либо ответов.

Я использую ColdFusion 10 на своем локальном компьютере с Windows Vista с локальным встроенным веб-сервером.

Может ли кто-нибудь пролить свет на то, что я делаю неправильно или почему это происходит? Я использую URLRewriteFilter версии 4.0.3 http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/index.html


person abbottmw    schedule 27.08.2012    source источник
comment
Я использую Coldfusion 10 на своем локальном компьютере с Windows Vista с локальным встроенным веб-сервером. — Встроенный веб-сервер CF (Coyote) или встроенный веб-сервер Windows (IIS)?   -  person Peter Boughton    schedule 27.08.2012


Ответы (1)


> "У меня для generateSES установлено значение true, а для SESOmitIndex значение true в настройках FW/1"

Эти два параметра не имеют значения — они влияют только на поведение метода buildUrl.
(Хотя может быть полезно знать, что наличие path_info включает флаг «generateSES» для этого запроса, даже если вы явно отключите его в настройках FW.)


Если вы используете фильтр URL, вам не нужно беспокоиться о переходе через path_info, и может быть проще просто переписать в query_string — опять же, оба используются/обрабатываются независимо от вышеуказанных настроек.

В качестве первого шага просто попробуйте это и посмотрите, что вы получите:

<rule>
    <from>^/(?!index\.cfm|favicon\.ico|list|of|folders)(.*)</from>
    <to last="true">/index.cfm?action=$1</to>
</rule>

Вы, вероятно, заметите отрицательный просмотр вперед (?!..) — он предотвращает неправильное перенаправление фактических файлов и каталогов — если у вас есть какие-либо другие файлы корневого уровня, добавьте их вместе с любой папкой (папками) верхнего уровня, содержащей ваш images/stylesheets/etc, используя | в качестве разделителя.

person Peter Boughton    schedule 27.08.2012
comment
Я был почти уверен, что настройки FW/1 не имеют никакого отношения к моей проблеме, но хотел убедиться. Чтобы ответить на ваш первый вопрос, я использую веб-сервер CF, но переписывание его в строку запроса работает намного лучше. Спасибо! - person abbottmw; 27.08.2012