Как создать безопасные URL для поисковых систем в Fusebox 5.1 noxml? - PullRequest
1 голос
/ 13 апреля 2009

Как создать безопасные URL для поисковых систем в Fusebox 5.1 noxml?

Например, я хочу это: http://www.site.com/index.cfm/app.welcome/

Вместо этого: http://www.site.com/index.cfm?fuseaction=app.welcome

Предполагается, что Fusebox 5.1 сможет это сделать. Я прочитал эту статью , но она относится только к XML-версии. Я так мало знаю, я не уверен, с чего начать. Как мне это сделать с версией fusebox noxml?

Обновление : Похоже, мне нужно добавить это в мой файл Application.cfc. Все еще не работает, хотя ...

FUSEBOX_PARAMETERS.myself = "index.cfm/fuseaction/";
FUSEBOX_PARAMETERS.queryStringStart = "/";
FUSEBOX_PARAMETERS.queryStringSeparator = "/";
FUSEBOX_PARAMETERS.queryStringEqual = "/";

Ответы [ 2 ]

1 голос
/ 16 апреля 2009

Fusebox 5.1 позволяет использовать URL-адреса SES, позволяя вам изменять? & к /. Вы все еще должны предоставить свой собственный переписчик. Однако, если вам удастся обновить систему до версии 5.5, возможно, она также выполняет переписывание.

Пример перезаписи

http://www.fusebox.org/forums/messageview.cfm?catid=31&threadid=6117&STARTPAGE=2

<cfscript>
// SES converter
qrystring = ArrayNew(1);
if ( Find("/",cgi.path_info) eq 1 and Find("/#self#",cgi.path_info) eq 0 ) {
qrystring = cgi.path_info;
} else if ( Len(Replace(cgi.path_info,"#self#/","")) gt 0 ) {
qrystring = ListRest(Replace(cgi.path_info,"#self#/","#self#|"),"|");
} else if ( FindNoCase("#self#/",cgi.script_name) gt 0 ) {
qrystring = ListRest(Replace(cgi.script_name,"#self#/","#self#|"),"|");
}
arQrystring = ListToArray(cgi.path_info,'/');
for ( q = 1 ; q lte ArrayLen(arQrystring) ; q = q + 2 ) {
if ( q lte ArrayLen(arQrystring) - 1 and not ( arQrystring[ Q ] is myFusebox.getApplication().fuseactionVariable and arQrystring[ q+1] is self ) ) {
attributes['#arQrystring[ Q ]#'] = arQrystring[ q+1];
}
}
</cfscript>

Если вы решите использовать Coldcourse ...

http://coldcourse.riaforge.com

Ниже поможет вам начать. Вы можете игнорировать перезапись на стороне сервера (ISAPI для IIS), если хотите отформатировать URL в /index.cfm/circuit/action/. Но если вы хотите / circuit / action / или / blah /, вам нужно сделать это на стороне сервера.

Application.cfc

Поставить onApplicationStart (или onRequestStart для тестирования) для помещения в память.

<cfset application.coldcourse = createObject("component","components.util.coldcourse").init("/config/coldcourse.config.cfm")>

index.cfm Поместите это до того, как каркас загрузит

<cfset application.coldcourse.dispatch(cgi.path_info, cgi.script_name) />

coldcourse.config.cfm (пример конфигурации)

<cfset setEnabled(true)>
<cfset setFrameworkEvent("action")>
<cfset setFrameworkSeparator(".")>
<cfset setFrameworkActionDefault("")>
<cfset setUniqueURLs(true)>
<cfset setBaseURL("http://www.mysite.com/index.cfm")>

<!--- CUSTOM COURSES GO HERE (they will be checked in order) --->
<!--- for http://www.mysite.com/about/ pages --->
<cfset addCourse("components")>
<cfset addCourse(pattern="about",controller="main",action="about")>
<cfset addCourse(pattern="contact",controller="main",action="contact")>
<cfset addCourse(pattern="help",controller="main",action="help")>

<!--- If nothing else matches, fall back to the standard courses (you probably shouldn't edit these) --->
<cfset addCourse(":controller/:action/:id")>
<cfset addCourse(":controller/:action")>
<cfset addCourse(":controller")>

Установка перезаписи ISAPI

Убедитесь, что вы используете правильное регулярное выражение перезаписи, поскольку версия 2.0 отличается от 3.0.

Пример для скрипта 2.0:

# Coldcourse URL Rewrite for CF
IterationLimit 0
RewriteRule ^(/.+/.+/.*\?.+\..*)$ /index.cfm/$1
RewriteRule ^(/[^.]*)$ /index.cfm/$1

Отключить проверку наличия файла на веб-сервере

Сделайте это для IIS, если в ваших веб-журналах появляется ошибка 404.

  1. Открыть диспетчер IIS
  2. Щелкните правой кнопкой мыши по сайту и выберите Свойства
  3. Перейдите на вкладку Домашний каталог
  4. Нажмите кнопку Конфигурация (нижний правый угол диалога)
  5. Нажмите расширение .cfm и выберите 'Edit'
  6. Нижний левый флажок: «Проверьте, что Файл существует "
1 голос
/ 13 апреля 2009
...