Categories
ASP.NET Miniposts NHibernate Windows Forms

Videos sobre .NET

Presentaciones sobre .NET:

Categories
WordPress

Corrección de permalinks en WordPress

WordPress en la mayoría de los casos funciona bien para auto generar URLs de entradas con títulos en inglés, pero en nuestro idioma no lo hace tan bien. Por ejemplo, si algún blogger pone como título "Seguridad en WordPress: ¿podríamos vivir sin plugins?", la url generada será seguridad-en-wordpress-%c2%bfpodriamos-vivir-sin-plugins que es equivalente a seguridad-en-wordpress-¿podriamos-vivir-sin-plugins, lo cual naturalmente no se ve bien. 🙂

Para corregir este pequeño problema, preparé un pequeño plugin que elimina todos los caracteres especiales de los permalinks. Básicamente lo que hago es reemplazar la función sanitize_title_with_dashes por esta otra:

php:

<?php
// Copia de la función sanitize_title_with_dashes (wp-includes/formatting.php)
function custom_sanitize_title_with_dashes($title) {
        $title = strip_tags($title);
        // Preserve escaped octets.
        $title = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---1---', $title);
        // Remove percent signs that are not part of an octet.
        $title = str_replace('%', '', $title);
        // Restore octets.
        $title = preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|', '%1', $title);

        $title = remove_accents($title);
               
        if (function_exists('mb_strtolower') && seems_utf8($title)) {
                $title = mb_strtolower($title, 'UTF-8');
        } else {
                $title = strtolower($title);
        }
       
        $title = preg_replace('/&.+?;/', '', $title); // kill entities
        $title = preg_replace('/[^%a-z0-9 _-]/', '', $title);

        $title = preg_replace('/[\s-]+/', '-', $title);
        $title = trim($title, '-');

        return $title;
}
?>

Este plugin todavía es -- y tal vez se quede en -- una versión alpha, si alguno está interesado en la funcionalidad, puede descargarlo o ver el código fuente.

Categories
ASP.NET Seguridad

Eliminar la cabecera X-AspNet-Version

Gracias a Mads Kristensen, me entero de una forma sencilla de eliminar la cabecera X-AspNet-Version que normalmente se envía al cliente.

code:

HTTP/1.1 200 OK
Date: Mon, 02 Jul 2007 23:02:51 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET

X-AspNet-Version: 2.0.50727

Set-Cookie: ASP.NET_SessionId=f31vuhudwugmjje511e3szuy; path=/; HttpOnly
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 7391

Para evitar este comportamiento, hay que poner en false el valor del atributo enableVersionHeader del elemento httpRuntime:

xml:

<?xml version="1.0"?>
<configuration>
    <system.web>
      <httpRuntime enableVersionHeader="false"/>
    </system.web>
</configuration>

No entiendo el motivo de que enableVersionHeader esté habilitado por omisión, sabiendo que es mejor ocultar las versiones del software que se usa.