Нужно ли использовать MVC FrameW для создания чистых URL? - PullRequest
1 голос
/ 02 августа 2010

Хост, на котором я хочу разместить хост, не поддерживает перезапись URL на стороне сервера, поэтому сторонние инструменты не могут быть установлены для перезаписи URL.

Это Coldfusion 8 для Windows, IIS.

Другая известная мне альтернатива - это использование фреймворка, но я не чувствую необходимости выбирать этот маршрут (время), поскольку приложение работает хорошо, как есть (но URL).

Могут ли чистые URL генерироваться чисто CF? Мне не нужны чистые URL-адреса для SEO, скорее это будет для удобства пользователя ссылки на свою страницу. Например. youtube.com/userpage

Любые предложения?

Если единственным выбором является использование фреймворка, то какой из них наиболее совместим с традиционными cfml '', cfm's & CFC? В связи с тем, что для преобразования из неструктурированного приложения в код необходимо внести минимальные изменения, чтобы он стал интегрированным.

Спасибо за ваш вклад!

Ответы [ 4 ]

3 голосов
/ 02 августа 2010

Нет. вам не нужен каркас или переписчик URL, чтобы заставить http://domain.com/some/url работать (не замечайте index.cfm).

В IIS вы можете настроить пользовательские страницы ошибок для 404 ошибок. Сделайте, чтобы пользовательская страница ошибок выполняла страницу ColdFusion на вашем сервере (например, /urlhandler.cfm, 404.cfm или index.cfm). На этой странице вы можете управлять своими собственными маршрутами с помощью ColdFusion, используя методы списка со значением cgi.query_string. IIS предоставит вам URL-адрес, похожий на 404; http://domain.com/the/original/url, который вы можете проанализировать, чтобы направить посетителя на желаемое событие.

<!--- Get URL String --->
<cfset CurrentURL = ListGetAt(cgi.query_string, 2, ";")>
<cfset CurrentURL = Replace(CurrentURL, ":80", "")>
<cfset CurrentURL = Replace(CurrentURL, ":443", "")>
<cfset CurrentURL = Replace(CurrentURL, "403;", "")>
<cfset CurrentURL = Replace(CurrentURL, "'", "", "ALL")>

У нас есть сайт, который получает около миллиона посетителей в месяц, и он все еще использует URL-адреса SES с помощью этого метода. Я был шокирован, когда меня наняли, и я нашел этот существующий код в самом сердце сайта и не хотел бы повторять его, но, если у вас есть ограничения на установку переписывающего или стороннего фреймворка (этот клиент наложил ограничения на сайт), это решение может работать для вас.

Играя с приведенным выше кодом, вы можете быстро увидеть, как вы можете использовать CF для динамического включения нужного файла .CFM или выполнения правильного кода CFC в зависимости от ваших настроек.

3 голосов
/ 02 августа 2010

Вы можете использовать Framework / 1 Framework или CFWheels для получения чистых URL-адресов, но для запуска кода обработчика приложения ColdFusion необходимо будет включить /index.cfm/ в начале URL-адреса.

РЕДАКТИРОВАТЬ: Пожалуйста, посмотрите работу Аарона Гринли, чтобы предотвратить появление "index.cfm" в URL.

т.е. Какой бы подход вы ни использовали, если вы не можете добавить сторонний инструмент для перезаписи URL-адресов (и не используете Apache), ваши URL-адреса будут иметь вид http://site.com/index.cfm/section/item

например. http://site.com/index.cfm/user/login http://site.cfm/index.cfm/user/signup

FW / 1 предлагает опцию для передачи URL-переменных в удобном для поисковых систем формате.

Примеры:

http://site.com/index.cfm/user/login/email/me@you.com/password/test такой же как http://site.com/index.cfm/user/login?email=me@you.com&password=test такой же как http://site.com/index.cfm?action=user.login&email=me@you.com&password=test

1 голос
/ 02 августа 2010

Продолжай изучать рамки.Большинство будет работать для этого.Однако, если вы просто не хотите изучать фреймворк.

www.mysite.com / products / будет работать: www.mysite.com/products/index.cfm

www.mysite.com / products / books будут работать по адресу: www.mysite.com/products/books/index.cfm

Framework / 1, и CFZen будут работать для этого, они представляют собой очень простые 1 файловые фреймворки, которые вы можете просто обойти.

CFZen http://cfzen.riaforge.org http://cftipsplus.com/blog/?tag=cfzen

Framework / 1 http://fw1.riaforge.org http://corfield.org - автор Framework / 1

0 голосов
/ 03 августа 2010

Вместо использования http://yoursite.com/index.cfm/user, вы можете сделать http://yoursite.com/user.cfm и отловить ошибку в функции OnMissingTemplate application.cfc.Это не потребует от вас установки пользовательской страницы 404.

...