2011-02-25 21 views
7

estoy experimentando con mod_rewrite por primera vez (yo soy un novato web, pero tratando de aprender). Estoy tratando de obtener bob.html para redirigir a alice.html (léase: la URL se mantiene igual, el contenido de la página es alice.html). Ambos archivos están en /var/www/. Estoy ejecutando Ubuntu 10.10 con Apache 2.2.16.Apache mod_rewrite funciona en .htaccess pero no HTTPD.CONF

Aquí es lo que funciona en el archivo .htaccess colocado en el directorio /var/www/:

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteRule ^bob.html$ alice.html 
</IfModule> 

Esto se comporta como se esperaba, pero no funciona cuando se trasladó a la httpd.conf archivo (acaba de aprender las mejores prácticas con el rendimiento y tal). He leído en alguna parte que cuando se utiliza el mod_rewrite en archivo httpd.conf, se requieren barras al principio, así que mi httpd.conf archivo se ve así:

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteRule ^/bob.html$ /alice.html 
</IfModule> 

también leí que /etc/apache2/sitios- activado/000-default necesidades de tener AllowOverride conjunto de Todo.

<Directory /var/www> 
... 
AllowOverride All 
... 
</Directory> 

Yo creo eso es sólo para su uso con .htaccess, pero no estaba seguro de lo que sólo dejó en.

Con todos estos valores de configuración, la redirección no funciona. He probado para asegurarse de que el propio archivo se leerá (alguien sugirió httpd.conf ya no se utiliza y apache2.conf se utiliza en su lugar) mediante la inserción de código erróneo. He echado un vistazo a algunas otras preguntas/respuestas, pero todavía no puedo entenderlo.

Edición: Debe tenerse en cuenta que estoy usando /etc/init.d/apache2 reiniciar después de cada cambio de httpd.conf reiniciar Apache y (con suerte) recargar la configuración.

+0

¿Qué sucede sin las barras diagonales principales en las directivas httpd.conf? –

+0

Sin cambios en el comportamiento. Todavía no funciona y no parece estar sucediendo nada diferente. Cuando – Chris

+0

en su archivo httpd.conf pusiste el '' bloque? –

Respuesta

1

Intente ajustar las reescrituras en su archivo httpd.conf en < Ubicación/> </Ubicación > etiquetas. Parece alterar el comportamiento haciéndolo más similar al archivo .htaccess.

Cuestiones relacionadas