Pregunta

Estoy utilizando mod_rewrite para crear direcciones URL SEO. Básicamente la cosa funciona de la siguiente manera: todas las solicitudes son capturados por .htaccess y redirigidos a un script php (digamos transform.php). transform.php analiza SEO URL y lo transforma en una URL normal, entonces incluye index.php, entonces coge la salida de la aplicación (de index.php) y utiliza expresiones regulares para convertir todas las URL normales de SEO URL. Por lo que el paso fundamental es hacer que toda solicitud, ve a través transform.php. Mi .htaccess es bastante largo sin embargo, me las arreglé para limitarlo a las siguientes líneas.

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on

    RewriteRule ^index\.php?(.*)$ ./transform.php?p=$1&%{QUERY_STRING} [L]

</IfModule>

El problema ocurre con la (raíz) URL inicial: http://mysite.com/ . Cuando escribo http://mysite.com/ y el sitio se encuentra en mi comp locales, todo funciona bien. http://mysite.com/ es capturado por .htaccess y enviados a transform.php para procesamiento adicional. Sin embargo en otro servidor de esta línea no funciona (digamos por http://mysite-other-server.com / ). Esta línea .htaccess simplemente no captura la solicitud. Todo funciona bien para http://mysite-other-server.com/index.php sin embargo.

Además tengo varios sitios en este segundo servidor y algunos de ellos trabajan, mientras que algunos de ellos no lo hacen. Es como para algunos de ellos la URL que se resuelva primero en http: // mysite-otra-servidor. com / index.php y luego manipulado por .htaccess mientras que para otros la dirección URL no se resuelve y se ocupa con .htaccess http://mysite-other-server.com/

Estoy muy confundido y trató googlear sin ninguna suerte. Cualquier ayuda es muy apreciada.

¿Fue útil?

Solución

Asumo que Apache está configurado para no aceptar .htacces archivos.

Debe activar desde la configuración httpd con el ajuste AllowOverride.

http://httpd.apache.org/docs/2.0 /mod/core.html#allowoverride

Otra posibilidad es que el servidor de producción no ha cargado mod_rewrite, compruebe las directivas LoadModule para eso.

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