Pregunta

Espero poder explicar esto con suficiente claridad, pero si no, házmelo saber e intentaré aclararlo.

Actualmente estoy desarrollando un sitio usando ColdFusion y tengo una regla mod_rewrite implementada para que parezca que el sitio usa PHP.Cualquier solicitud de index.php es procesada por index.cfm (la regla asigna *.php a *.cfm).

Esto funciona muy bien, hasta ahora, todo bien.El problema es que quiero devolver un código de estado 404 si se solicita directamente index.cfm (o cualquier página de ColdFusion).

Si intento bloquear el acceso a archivos *.cfm usando mod_rewrite, también devuelve un 404 para solicitudes a *.php.

Supongo que tendré que cambiar mi configuración de Apache en lugar de usar .htaccess

¿Fue útil?

Solución

Puedes usar el S bandera para saltarse el 404 regla, así:

RewriteEngine on

# Do not separate these two rules so long as the first has S=1
RewriteRule (.*)\.php$ $1.cfm [S=1]
RewriteRule \.cfm$ - [R=404]

Si también estás usando el Alias opción entonces también debes agregar el PT bandera.Ver el documentación mod_rewrite para detalles.

Otros consejos

Publica las reglas que ya tienes como punto de partida para que la gente no tenga que recrearlas para ayudarte.

Sugeriría probar [L] en la regla que asigna archivos .php a .cfm como lo primero que debe intentar.

Debe utilizar dos grupos distintos de reglas de reescritura, uno para .php y el otro para .chm, y hacerlos mutuamente excluyentes con RewriteCond %{REQUEST_FILENAME}.Y utilice la bandera [L] como lo sugiere jj33.

Puede mantener sus reglas en .htaccess.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top