2012-04-16 18 views
9

Estoy tratando de agregar reglas mod_rewrite en la configuración de vhost, pero no está funcionando. Para el sitio "mysite.com", quiero redirigir "/ webmedia /" a la página de inicio.mod_rewrite en la configuración de vhosts

Aquí es lo que tengo:

<VirtualHost 192.168.100.142:80> 
    ServerAdmin [email protected] 
    DocumentRoot /home/drupal_1 
    ServerName mysite.com 
    ServerAlias www.mysite.com 
    Alias /movies /home/movies/ 
    ErrorLog /var/log/httpd/mysite.com_err_log 
     CustomLog /var/log/httpd/mysite.com_log special 
    <Directory /home/drupal_1> 
     Options FollowSymLinks Includes ExecCGI 
       AllowOverride All 
       DirectoryIndex index.html index.htm index.php 

     # Rewrite Rules ##################### 
     RewriteEngine On 
     RewriteRule ^/webmedia/(.*)/[R=301,L] 
     # end Rewrite Rules ################# 

    </Directory> 
    <Directory /home/movies> 
     Options FollowSymLinks Includes ExecCGI 
       AllowOverride All 
       DirectoryIndex index.html index.htm index.php 
    </Directory> 

</VirtualHost> 
+0

¿Por qué no mover sus reglas a un archivo '.htaccess'? Será mucho más fácil de administrar ya que no tendrá que reiniciar Apache después de cada modificación que realice. –

+2

El archivo .htaccess se está volviendo grande y escuché que es más eficiente para el servidor leerlo desde el archivo vhosts. ¿Es eso correcto? – EricP

+2

Sí, Apache probablemente sea _faster_ sin 'AllowOverride All' porque no tendrá que leer su archivo .htaccess en cada solicitud. Supongo que la ganancia de rendimiento es muy pequeña aquí. ¿Qué tienes actualmente en tu '.htaccess' para que sea grande? –

Respuesta

11

Esto debería funcionar si tiene mod_rewrite cargado.

<Directory /home/drupal_1> 
    Options FollowSymLinks Includes ExecCGI 
    AllowOverride All 
    DirectoryIndex index.html index.htm index.php 
</Directory> 
<Directory /home/movies> 
    Options FollowSymLinks Includes ExecCGI 
    AllowOverride All 
    DirectoryIndex index.html index.htm index.php 
</Directory> 
<VirtualHost 192.168.100.142:80> 
    ServerAdmin [email protected] 
    DocumentRoot /home/drupal_1 
    ServerName mysite.com 
    ServerAlias www.mysite.com 
    Alias /movies /home/movies/ 
    ErrorLog /var/log/httpd/mysite.com_err_log 
    CustomLog /var/log/httpd/mysite.com_log special 

    # Rewrite Rules ##################### 
    RewriteEngine On 
    RewriteRule ^/webmedia/(.*)/[R=301,L] 
    # end Rewrite Rules ################# 
</VirtualHost> 
+0

Gracias Seybsen. Eso fue todo. – EricP

+0

I es más fácil en el servidor si hay menos reescrituras en los archivos .htaccess y más en la configuración de vhost? ¿O no importa? – EricP

+1

Echa un vistazo a esta respuesta: http://stackoverflow.com/a/9555416/982002 – Seybsen