asp.net - how - url rewrite forward
Reescribir URL en IIS7 para Wordpress (3)
Estoy usando ManagedFusion Url Rewriter y una página de error 404 personalizada en mi blog .
El Reformista de Url de ManagedFusion requiere un archivo llamado ManagedFusion.Rewriter.rules que imita .htaccess, tuve que jugar con él bastante para hacerlo bien, así que incluiré lo que tengo actualmente en el mío:
# Managed Fusion Url Rewriter
# http://managedfusion.com/products/url-rewriter/
#
# Developed by: Nick Berardi
# Support: [email protected]
#
RewriteEngine on
#
# Place Rules Below
#
# misc WordPress rewrites
RewriteRule ^/wp-login/.php$ /wp-login.php [L]
RewriteRule ^/wp-comments-post/.php$ /wp-comments-post.php [L]
RewriteRule ^/wp-admin/(.*)$ /wp-admin/$1 [L]
# deny access to evil robots site rippers offline browsers and other nasty scum
RewriteCond %{HTTP_USER_AGENT} ^Anarchie [OR]
RewriteCond %{HTTP_USER_AGENT} ^ASPSeek [OR]
RewriteCond %{HTTP_USER_AGENT} ^attach [OR]
RewriteCond %{HTTP_USER_AGENT} ^autoemailspider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon/ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xenu [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus.*Webster [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule ^.* - [F,L]
# remove www
RewriteCond %{HTTP_HOST} ^www/.robboek/.com$ [NC]
RewriteRule ^(.*)$ http://robboek.com$1 [R=301]
# redirect old urls
RewriteRule ^/2008/12/blog-on-hold.html$ /2008/12/12/blog-on-hold/ [R=301]
RewriteRule ^/2008/11/google-chrome-wont-start-in-vista-x64/.html$ /2008/11/16/google-chrome-wont-start-in-vista-x64/ [R=301]
RewriteRule ^/2008/11/pass-community-summit-2008-events.html$ /2008/11/14/pass-community-summit-2008-events-calendar/ [R=301]
RewriteRule ^/2008/11/fort-stevens-camping-trip.html$ /2008/11/14/fort-stevens-camping-trip/ [R=301]
RewriteRule ^/2008/10/first-post.html$ /2008/10/10/first-post/ [R=301]
RewriteRule ^/blog/CommentView,guid,1d8cba50-0814-4c89-86df-eca669973e8e.aspx$ /2006/09/29/junctions-in-windows-vista/ [R=301]
RewriteRule ^/blog/2006/09/29/JunctionsInWindowsVista.aspx$ /2006/09/29/junctions-in-windows-vista/ [R=301]
# rewrite all nonexistent files and directories to use index.php for WordPress
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php$1
Las reglas manejan las urls bonitas, eliminan el www y redirigen varias urls antiguas de un blog anterior.
También tengo un archivo "404.php" que he configurado como mi página personalizada de error 404. Esto no es necesario para las URL bonitas, pero le permitirá usar la página de wordpress 404 en temas personalizados. Aquí están los contenidos:
<?php
$qs = $_SERVER[''QUERY_STRING''];
$pos = strrpos($qs, ''://'');
$pos = strpos($qs, ''/'', $pos + 4);
$_SERVER[''REQUEST_URI''] = substr($qs, $pos);
$_SERVER[''PATH_INFO''] = $_SERVER[''REQUEST_URI''];
include(''index.php'');
?>
Espero que eso ayude. Me ha estado yendo muy bien hasta ahora.
-Robar
Actualización: acabo de publicar un artículo de blog sobre mi experiencia al usar WordPress en IIS7
Estoy usando alojamiento compartido con IIS7 y soporte para PHP. Estoy intentando ejecutar un blog de WordPress con "URL bonitas" (eliminando index.php). El proveedor de alojamiento no desea instalar el módulo URLRewrite, por lo que esa opción no está disponible para mí. Encontré un complemento para WordPress que eliminará el index.php de las URL permanentes y el cambio de la página 404 a index.php se supone que hace el truco ... eso tampoco funciona.
Estoy familiarizado con la reescritura de URL para un sitio web ASP.NET, pero no estoy seguro de cómo lo haría para PHP. La configuración del alojamiento parece ser compatible con ASP.NET y PHP al mismo tiempo, así que estoy pensando que sería posible ejecutar el código de reescritura a través de ASP.NET, pero no estoy seguro de cómo hacerlo.
¿Alguien tiene alguna experiencia con esto o alguna idea sobre el mejor enfoque para tomar. Si algo me guía en la dirección correcta o si me lo explico, estaré más que feliz de compartir el código aquí para cualquier otra persona que lo necesite.
Se supone que cambiar la página 404 a index.php hace el truco. Si no es así, es posible que el complemento no sea compatible con IIS.
Hay un archivo xml " web.config " en IIS que hace lo que .htaccess hace en Apache HTTPD. (es decir, anula la configuración del servidor web por archivo de configuración estático). Es ampliamente utilizado en la aplicación ASP.NET.
Lea Habilitar los errores personalizados en WordPress en IIS 7.0. Si esto tampoco funciona, puede intentar pedirle a su proveedor de servicios que lo configure. Pueden configurar esta configuración a través de la IIS Management Console GUI.
Gracias por todas las sugerencias.
Mi anfitrión terminó instalando IIRF y funcionó a las mil maravillas . Hay un archivo llamado IsapiRewrite4.ini para las reglas de reescritura. Para poder ejecutar mi instalación de Wordpress sin index.php en la URL, todo lo que tenía que hacer era agregar:
RewriteRule ^/sitemap.xml$ - [L]
RewriteRule ^/(?!index.php)(?!wp-)(.*)$ /index.php/$1
La primera línea permite solicitudes para un archivo sitemap.xml. La segunda línea maneja la eliminación de index.php de la URL. Parece estar bien desde el punto de vista del rendimiento, no he visto ningún problema con las páginas que responden lentamente.
Es de esperar que esto ayude a alguien más que necesita una funcionalidad similar.