2009-02-12 7 views
5

Me gustaría implementar una reescritura de URL para DotNetNuke. Tiene preguntas sobre si este es un enfoque bueno o posible y cualquier sugerencia que otros desarrolladores puedan tener.¿Cuál es el mejor enfoque de reescritura de URL de DotNetNuke?

¿Puedo agregar una ruta dinámica o estática para reescritura de URL desde la sección 'Páginas' -> 'Agregar página'?

Digamos que estoy creando una página llamada 'Eventos' debajo del elemento de menú 'Actividades'.

¿Puedo escribir un código personalizado en DotNetNuke que agregará un mensaje en la pantalla de agregar página que asume que querré agregar una ruta estática o dinámica para - site.com/Activities/Events O si le doy el nombre a la página 'Evento' Calendar ', entonces sugeriría' site.com/Activities/Event-Calendar '?

¡Me gustaría recibir cualquier comentario o sugerencia sobre cómo lograr esto! Gracias.

+0

Gran pregunta. Extraño pero cierto: hay muy poco interés de DNN en StackOverflow, pero hay algunos. ¿Qué solución terminaste usando? –

Respuesta

5

Si está utilizando DotNetNuke 4.8 o superior, solo tiene que habilitar las Urls Human Friendly a través del Web.Config.

Para habilitar urls amigables humanos, reemplace:

<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" /> 

con:

<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" urlFormat="HumanFriendly" /> 

ACTUALIZACIÓN: Para DNN 7.x y mayor, esto debería ser ahora:

<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" urlFormat="advanced" /> 

Detalle adicional: Enable Human Friendly Urls in DotNetNuke

3

mira esto - detalles aquí:

http://www.ifinity.com.au/Blog/Technical_Blog/EntryId/19/Rewriting-the-DotNetNuke-Url-Rewriter-Module/

También, echar un vistazo al módulo FriendlyUrl existente que ya está incluido en DNN.

Si desea hacer esto en las páginas de stock, tendrá que descifrar la fuente para ello, o escribir un módulo que lo haga de forma independiente.

+0

Ese enlace está un poco anticuado ya que se refiere a la versión 1 del software que se ha convertido en mucho más que eso. Para el módulo Url Master, consulte aquí http://www.ifinity.com.au/Products/Url_Master_DotNetNuke_Url_Rewriting/Features_Options Este módulo también permite redireccionamientos personalizados, 404 páginas y mucho más. para el proveedor de URL amigable (sustitución de la norma DNN Url Regrabadora) ver aquí: http://www.ifinity.com.au/Products/Friendly_Url_Provider_For_DNN Este módulo permite urls amigables humanos, sino que también tiene redirecciones automáticas para las 'viejas' Urls (con los tabids) y otras opciones. –

+0

Nota: las cosas iFinity no parecen admitir páginas splash por alguna razón – NotMe

+0

Cuando probé el paquete infinity, simplemente redirigió la url maliciosa a la no amigable, para el resto de la sesión, en lugar de mostrar la URL amigable todo el tiempo, y no dejar que el usuario vea la versión antipática – ShaunOReilly

1

Otra sugerencia es Page Blaster, si no desea escribir su propio código. Funciona bien para los sitios donde lo uso.

2

Para responder a su pregunta directamente: sí, puede agregar un código a la página Configuración de página DNN. Sin embargo, modificará el código del núcleo y, por lo tanto, no podrá actualizar fácilmente su instalación cuando se realice la próxima versión de DNN.

Mucha gente viene a DNN y quiere escribir una nueva Reescritura de Url. El problema no es la reescritura: es conseguir que el marco DNN genere las direcciones URL correctas donde te gustaría, en los menús, en los enlaces generados dentro de los módulos. Para cambiar realmente el esquema de reescritura, debes reemplazar/aumentar la función de reescritura de URL, la función de generación de URL amigable y proporcionar algún tipo de capacidad de redirección para vincular las Urls antiguas y las nuevas.

0

Varias de estas son excelentes respuestas ... Una de las cosas más importantes que debe saber si acaba de aprender sobre DNN ahora (2016 y posteriores) es que el reino de la reescritura de URL ha cambiado con DNN.

Antes, en DNN 4.8 y siguientes tuvo que utilizar un módulo externo/proveedor como: PageBlaster o DNN Masters SEO URL REWriter o iFinity URL REWriter todos estos se mencionan en algunas de las respuestas anteriores.

Sin embargo, después de DNN 4.9, iFinity URL ReWriter se incorporó al núcleo DNN y lo encontrará disponible en DNN 5, 6, 7 y 8 en diferentes niveles de exposición a la interfaz. Aún necesita hacer algunas actualizaciones en el archivo web.config, pero gran parte se realiza directamente en la Configuración de página ahora.

Cualquier configuración que no esté dentro de los administradores principales, puede hacerlo en el archivo web.config o en la base de datos, o puede buscar un módulo DNN como X3 DNN URL Management que se conecta a los registros de la base de datos la reescritura de URL de DNN integrada y ayuda a administrar la configuración (es muy similar a las antiguas pantallas/opciones de la interfaz de iFinity) pero no la necesita, puede trabajar directamente, es útil.

Cuestiones relacionadas