2010-03-12 11 views
13

Tengo un dominio y un blog de WordPress en el mismo servidor. Ahora tengo un problema (sorpresa). Wordpress se encuentra en/httpdocs/blog/y el dominio apunta a/httpdocs/y estoy intentando redirigirlo a/httpdocs/domain /. Pero, de forma obvia, tengo enlaces permanentes en Wordpress.Muchos RewriteBase en un archivo .htaccess?

Aquí es mi .htaccess actual:

RewriteEngine On 

RewriteBase /blog/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /blog/index.php [L] 

RewriteBase/
RewriteCond %{HTTP_HOST} domain.com 
RewriteCond %{REQUEST_URI} !^/domain 
RewriteCond %{REQUEST_URI} !^/cgi-bin 
RewriteRule ^(.*)$ domain/$1 [L] 

Pero a medida que éste tenga además probablemente, esto no funciona. Los enlaces permanentes de Wordpress afectan a/domain/también, por lo que mis imágenes y otras direcciones URL salen mal.

¿Algún consejo? ¿Es posible usar RewriteBase de esta manera?

Respuesta

8

No, solo puede tener una URL base. Simplemente reescriba sus reglas:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^blog/. /blog/index.php [L] 

RewriteCond %{HTTP_HOST} =example.com 
RewriteCond %{REQUEST_URI} !^/domain 
RewriteCond %{REQUEST_URI} !^/cgi-bin 
RewriteRule ^(.*)$ domain/$1 [L] 
+1

Parece que la última directiva 'RewriteBase' gana para todo el archivo .htaccess. – MrWhite

+1

De hecho, parece que la idea inicial detrás del uso de 'RewriteBase' en la pregunta es incorrecta de todos modos. Habría necesitado escribir el patrón 'RewriteRule' como'^blog/.' de todos modos, independientemente del valor de 'RewriteBase'. 'RewriteBase' no afecta el URI coincidente con el _pattern_, solo afecta las _substituciones relativas_. – MrWhite

Cuestiones relacionadas