2011-06-10 33 views
18

Necesito ayuda con la reescritura de URL. El caso es similar con this one.Carpeta diferente como subcarpeta del sitio web

Tengo un sitio de trabajo de Zend Framework. Ahora debo agregar un blog en Wordpress (también funciona). He elegido no para disfrutar de ZF controlador/acción/ruta de decisiones; He visto un par de tutoriales sobre esto y los considero demasiado para una redirección "simple". Ahora, acerca de que "redirección" ...

Ésta es la forma en que debe ser similar:

  • www.site.com puntos (a) /var/www/zf
  • www.site.com/blog (puntos) a /var/www/wp

I Sé que debo dejar www.site.com/blog para entrar en las entrañas de ZF y actualmente estoy haciendo esto con RewriteRule ^blog - [NC,L] en su .htaccess, pero eso es todo. Como dijo @jason, "simplemente pásalo a Wordpress", pero no sé exactamente cómo hacerlo.

pregunta relacionada:
nunca lo intentaron pero sí apoya Apache esto en dos diferentes host virtuales?
ServerName www.site.com (host virtual para el sitio de ZF)
ServerName www.site.com/blog (host virtual para el sitio WP)

+0

Intente agregar lo siguiente a '.htaccess' en el directorio principal que se encuentra sobre el directorio de interés:' RedirectMatch ^/foo/$/foo/bar/'o' RedirectMatch ^/foo/$/bar/baz/'. También vea [Cómo hacer que apache2 redirija a un subdirectorio] (http://serverfault.com/q/9992/145545). – jww

Respuesta

37

www.site.com (puntos en/var/www/ZF)

www.site. com/blog (puntos en/var/www/wp)

la forma easiset a achive este, donde desea un sub-url a punto fuera directorio DocumentRoot del host virtual, es crear un alias ...

Dentro del bloque complemento VirtualHost:

Alias /blog /var/www/wp 

<Directory /var/www/wp> 
    Options All 
    AllowOverride All 
    order allow,deny 
    allow from all 
</Directory> 

* Esto supone que tiene PHP permitido de alguna manera para ese directorio.

+0

He probado esto localmente y funciona, pero los enlaces wp apuntan a (digamos) 'http: // localhost/wordpress /? Page_id = 7' (que funciona), en lugar de' http: // local-play/blog /? page_id = 7'. – nevvermind

+0

Cancelar mi comentario anterior. Es porque instalé WP * antes * de esta nueva configuración. Al instalar como suburl "/ blog", funciona bien. Gracias, @rightstuff. – nevvermind

+2

Esto requiere que Apache mod_alias esté habilitado. http://httpd.apache.org/docs/2.2/mod/mod_alias.html – Laizer

0

El truco ServerName no funciona: no se puede tener nombres de ruta en una directiva ServerName.

Para mod_rewrite debe ser capaz de salirse con algo como esto:

RewriteEngine on 
RewriteBase/
RewriteRule ^blog/(.*)$ wp/$1 [L] 
RewriteRule ^(.*)$ zf/$1 [L] 
+0

Esto debería estar en htaccess de ZF Supongo ... – nevvermind

+0

Ah, no: tendrás que poner eso en la carpeta de nivel superior. Si lo coloca en el .htaccess de la carpeta ZF, no podrá afectar los directorios ARRIBA zf (como la carpeta de su blog). – Femi

Cuestiones relacionadas