haciendo que mod_rewrite funcione en Mac OS X

2

Estoy intentando que la reescritura de mod funcione en mi Mac. Este es el contenido del archivo .htaccess:

<Files *\.ini>
  order allow,deny
  deny from all
</Files>

RewriteEngine on
RewriteRule .* index.php

Sé que esto está activo, porque está bloqueando los archivos .ini correctamente, y parece que vuelve a escribir la solicitud ficticia /foo a index.php , ya que este es el error que estoy viendo en el navegador:

  

La URL solicitada /Users/rwel/Sites/dev/quaestio/index.php no se encontró en este servidor.

El archivo index.php actualmente solo contiene una declaración de salida para propósitos de prueba, y funciona cuando se llama directamente. Entonces, la pregunta es, ¿qué está mal? Entré en el registro de errores de Apache, y esto es lo que vi:

  

[Thu Nov 03 14:36:02 2011] [error] [cliente 127.0.0.1] El archivo no existe: / Library / WebServer / Documents / Users

Entonces, el problema podría ser que no está buscando en la raíz, sino en relación con el directorio /Library/WebServer/Documents . Estoy en lo cierto ¿Cómo puedo solucionar esto?

¡Gracias por tu ayuda!

    
pregunta Rijk 03.11.2011 - 16:01

2 respuestas

4

Debes configurar hosts virtuales.

En /etc/apache2/httpd.conf descomente la línea:

#Include /private/etc/apache2/extra/httpd-vhosts.conf

Ahora edita /etc/apache2/extra/httpd-vhosts.conf. Elimine los vhosts de ejemplo, pero especifique un vhost predeterminado como el primero. Aquí hay un ejemplo de configuración.

NameVirtualHost *: 80

<VirtualHost *:80>
        DocumentRoot /Library/WebServer/Documents
</VirtualHost>

<VirtualHost *:80>
        ServerName myproject
        DocumentRoot /Users/username/Sites/myproject
        <Directory /Users/username/Sites/myproject>
                Order Allow,Deny
                Allow from all
        </Directory>
</VirtualHost>

Reinicie Apache ejecutando apache2ctl restart .

Debe agregar una entrada a su archivo / etc / hosts para que su nombre de servidor se resuelva:

127.0.0.1  myproject

Ahora, cuando acceda a enlace , sus reglas de reescritura serán relativas a la raíz del documento correcto.

    
respondido por el Gerry 03.11.2011 - 16:38
0

Además de la solución de Gerry, agregué AllowOverride All que hizo posible la reescritura en mi caso;

<VirtualHost *:80>
        DocumentRoot /Library/WebServer/Documents
</VirtualHost>

<VirtualHost *:80>
        ServerName myproject
        DocumentRoot /Users/username/Sites/myproject
        <Directory /Users/username/Sites/myproject>
                Order Allow,Deny
                Allow from all
                AllowOverride All
        </Directory>
</VirtualHost>

Fuente: enlace

    
respondido por el amertkara 29.12.2013 - 20:42

Lea otras preguntas en las etiquetas