14 votos

Habilitar la reescritura de URL (mod_rewrite) el uso de .archivos htaccess en ~/Sitios en Lion

No puedo conseguir el mod_rewrite para trabajar en Lion. Estoy desarrollando una serie de sitios web a nivel local, en ~/Sitios, el uso de .archivos htaccess. Estoy en 10.7.3 y no he tocado ninguna configuración de los archivos excepto para habilitar PHP en httpd.conf (que funciona).

Sé que hay al menos 2 preguntas acerca de esto aquí, pero las soluciones detalladas de allí no trabajo. Tampoco el resto de soluciones que he encontrado en la web. Debo de estar haciendo algo estúpido o con vistas a algo, o más probablemente voy loco, pero no está funcionando.

He intentado todas las cosas habituales:

  1. En /private/etc/apache2/users/<myusername>.conf, cambio AllowOverride None a AllowOverride All y reiniciar el servidor web

  2. Además, en /private/etc/apache2/httpd.conf, el cambio de cualquier/todos ocurrencia(s) de AllowOverride None a AllowOverride All -- yo lo he probado en todos los diferentes lugares donde estas directivas se encuentran

  3. Trate de básicamente todas las combinaciones posibles de los valores de la Options línea por encima/por debajo de la AllowOverride línea, la inclusión de los valores: Indexes MultiViews FollowSymLinks All

Siempre reiniciar el servidor web después de este cambio, por supuesto. Nada de esto funciona. Todos mis urls limpias simplemente no funcionan, me da un error 404 - no encontrado. Apache registro de error solo me da "el Archivo no existe:" los errores. Así que parece que el módulo mod_rewrite no funciona, aun en absoluto.

Me aseguré de que el mod_rewrite está cargado en el httpd.conf, que es; es así que por defecto en un Lion de instalar.

La cosa loca es que todo había funcionado a la perfección, hasta que he migrado a un equipo nuevo Lion. Es decir, estoy de descartar un error en mi .archivos htaccess porque sé que funcionaba antes. También, si fue un error en el .htaccess, me gustaría obtener algún tipo de mensaje de error del módulo mod_rewrite en Apache error_log, al menos me dice que el propio módulo que está siendo llamado. Pero esto no está sucediendo.

Estoy con vistas a algo? Voy a tener que cambiar la configuración de algún otro lugar? Voy a tener que cambiar de PHP config? ¿Por qué son las instrucciones (como Cómo activar el mod_rewrite en MacOSX Lion y llegar mod_rewrite para trabajar en Mac OS X) de trabajar para otras personas, pero no para mí? :)

He desperdiciado horas en esto ya. Cualquier ayuda sería MUY apreciada.

12voto

Gerry Puntos 10709

Usted debe asegurarse de que en el /etc/apache2/usuarios/nombre de usuario.conf usted tiene los siguientes:

<Directory "/Users/username/Sites/">
    Options Indexes MultiViews FollowSymlinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

El FollowSymlinks y AllowOverride son esenciales aquí. Mientras que usted está haciendo alusión a ambos en su pregunta, tal vez usted no configurar correctamente estos en tándem.

Asegúrese de que en httpd.conf /private/etc/apache2/extra/httpd-userdir.conf está incluido. Es por defecto.

Después de cualquier modificación, reiniciar el servidor web para que los cambios surtan efecto.

Si usted todavía tiene problemas, tal vez hay un problema con su actual reglas de reescritura. Se que el uso de ellas en una .htaccess contexto antes así? Tenga en cuenta que en un .htaccess, la regla de reescritura de expresiones regulares (regex se compara con un URI de la solicitud sin slash y siempre relativa al directorio donde el .htaccess reside, mientras que en un mundial de httpd.conf el URI debe coincidir con un slash y es relativa a la root del web. Porque supuestamente tienes tu .htaccess en un subdirectorio de ~/Sitios, sus reglas de reescritura puede comportarse diferente de la .htaccess reside en el web root de un (virtual).

Para depurar el mod_rewrite puede habilitar la reescritura de registro. Usted debe permitir que en /etc/apache2/httpd.conf:

RewriteLogLevel 3
RewriteLog /path/to/rewrite.log

1voto

Oorang Puntos 3415

Yo estaba teniendo un problema similar donde mi .htaccess estaba siendo ignorado por completo, mientras que en una subcarpeta dentro de mi ~/directorio de Sitios bajo un VirtualHost que era la instalación correctamente.

Después de haber pasado la última hora jugando con diferentes archivos de configuración y la configuración de AllowOverride All en varios lugares, finalmente me enteré de que la .htaccess, mientras que se parecía a una .htaccess archivo en el Finder, era en realidad un .htaccess.txt archivo con la extensión oculta.

Comprobar y cambiar el .htaccess archivo, haga clic derecho sobre él y seleccione " Obtener Información y, a continuación, asegúrese de quitar cualquier líder de prórroga de la final, como el que he tenido:

Y ahora funciona!

1voto

fa7d0 Puntos 101

La adición de Options +FollowSymLinks trabajado bien para mí

Options +FollowSymLinks

RewriteEngine on
RewriteBase /
RewriteRule

0voto

p4bl0 Puntos 818

La colocación .htaccess en /Library/WebServer/Documents y abierto "localhost/"; para probarlo, funciona como se espera. Simplemente no funciona en "~/Sitios". Gracias Niels Heidenreich para esto!

-1voto

Bisteces Puntos 1

Cuando escriba: /Usuarios/nombre de usuario/app_name

El / se refiere a la root del servidor web:

"localhost/"

Si usted usa /~usuario/app_name en su reescritura se debe trabajar.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X