2012-09-04 38 views
8

Estoy usando MODX Revolution 2.2.4-pl. Estoy usando el archivo .htaccess provisto y tengo activadas las URL amigables. Estas son mis reglas de reescritura.Cómo eliminar .html de la URL amigable - Modx?

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

¿Qué tienen que tener para eliminar el .HTML de la URL?

He estado buscando en Google durante los últimos veinte minutos y mis soluciones no han funcionado. Gracias

Respuesta

23

Hay una manera mucho más fácil construido en el camino. Inicie sesión en el administrador.

Revolución MODX

2.2.x y anteriores: Ir a System -> Content Types.

2.3.xy posterior: Vaya a Content -> Content Types.

Encuentra HTML y borra lo que está escrito en "Extensión de archivo". Para ello, haga doble clic en .html en la tabla para activar el campo editable. Después de haber borrado el contenido, borre la caché.

MODX Evolución

Ir a Tools -> Configuration -> Friendly URLs.

Eliminar el contenido en "Sufijo de URL amigable". Guarde y borre la memoria caché.

+2

+1 Esta es la 'manera MODX': más eficiente que la solución .htaccess, que permite el acceso 'directo' al recurso en lugar de pasar por una reescritura en cada solicitud. Si existen enlaces externos que apuntan a las páginas que terminan en .html, sería una buena idea usar RewriteRule también. – okyanet

1

En primer lugar, creo que debe comprender lo que este .htaccess está tratando de hacer.

Está intentando redireccionar a un frente todas las solicitudes que ingresen al sitio que no sean para un archivo o directorio real (es decir, imágenes, CSS u otros scripts que podrían no ser parte del sitio web "principal") controlador ubicado en index.php.

Si lo que estás intentando hacer es utilizar un montón de archivos * .html en tu sitio (y no un controlador frontal), pero haz que usen URL limpias, entonces necesitarás usar un tipo diferente de reescritura. Probablemente algo más como

RewriteCond %{REQUEST_FILENAME}.html -f 
RewriteRule ^(.*)$ $1.html [L,QSA] 

Esta regla se tomaría una solicitud en forma de http://domain.com/somepage y tenerlo en silencio apuntan a http://domain.com/somepage.html a atender la solicitud.

3

Esto funciona para mí:

# The Friendly URLs part 
#RewriteCond %{REQUEST_FILENAME} !-f 
#RewriteCond %{REQUEST_FILENAME} !-d 
#RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 


RewriteCond %{REQUEST_URI} \.html$ 
RewriteRule ^(.*)\.html$ $1 [R=301,L] 

RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 
#RewriteRule . /index.php [L] 
+0

Gracias hombre! Apreciado enormemente. – Brant

+0

no hay problema! [aunque si la memoria es válida, esto también lo obtuve de una pregunta de stackexchange :)] –

Cuestiones relacionadas