Estoy tratando de hacer que la reescritura de mods 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 volver a escribir la solicitud ficticia /foo
, index.php
ya que este es el error que veo 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 fines de prueba, y funciona cuando se llama directamente. Entonces, la pregunta es, ¿qué va mal? Entré en el registro de errores de apache, y esto es lo que vi:
[Jue 03 de noviembre 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 /Library/WebServer/Documents
directorio. ¿Tengo razón? ¿Cómo puedo arreglar esto?
¡Gracias por tu ayuda!
Debe configurar hosts virtuales.
En /etc/apache2/httpd.conf elimine el comentario de la línea:
#Include /private/etc/apache2/extra/httpd-vhosts.conf
Ahora edite /etc/apache2/extra/httpd-vhosts.conf. Elimine los vhosts de ejemplo, pero especifique un vhost predeterminado como el primero. Aquí hay una configuración de ejemplo.
NombreVirtualHost *: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 resuelva:
127.0.0.1 myproject
Ahora, al acceder a http://myproject , sus reglas de reescritura serán relativas a la raíz del documento correcto.
Además de la solución de Gerry, agregué AllowOverride All, lo 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>
Rijk
Gerry
Rijk