2011-03-08 9 views
6

En mi sitio web, todas las imágenes/hojas de estilo se encuentran en el directorio/CMS/.... Recientemente, nuestro sitio web cambió a un nuevo servidor en una url temporal donde hace referencia a/newdirectory/CMS/...Reescritura de URL para agregar un directorio al inicio de la url

¿Cómo podemos agregar/newdirectory/to all/CMS/calls?

+0

¿Qué servidor web está utilizando? –

Respuesta

11

Dentro del archivo .htaccess

RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/newdirectory/CMS/ 
RewriteRule ^(.*)$ /newdirectory/CMS/$1 

Esto realizará una reescritura, por lo que el acceso a http://www.server.com/CMS/index.html realmente servir el contenido de http://www.server.com/newdirectory/CMS/index.html

Nota: Esta solución asume que el CMS es lo único que se ofrece para este dominio.

Si este dominio está sirviendo más que el CMS (y sólo el CMS debe ser redirigido), a continuación, lo siguiente puede ser mejor:

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/CMS/ 
RewriteRule ^(.*)$ /newdirectory/$1 
1

me gustaría sugerir el uso de mod_rewrite, que la mayoría de los servidores Apache/Linux tener. Crear un archivo llamado .htaccess en la raíz de documento de su sitio con el contenido:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^/CMS/(.*)$  /newdirectory/CMS/$1 [QSA] 
</IfModule> 

Este método hará que sea transparente para el usuario final y no influye en el PageRank actual, SEO, etc valor y todos los enlaces entrantes será mantenido.

3

No necesita una RewriteRule (o mod_rewrite) para esto. Puede usar un simple RedirectMatch:

RedirectMatch ^/CMS/(.*) http://tempserver.com/newdirectory/CMS/$1 
+0

¿Cuál es el beneficio de RedirectMatch? Estoy interesado ... – Jacob

+0

Es un poco más ligero y no requiere que mod_rewrite esté habilitado. Ninguno de esos puntos es realmente un problema en la práctica de hoy, pero sigue siendo una buena técnica. – nitro2k01

Cuestiones relacionadas