2011-07-06 21 views
5

Tengo dos guiones:.htaccess mapa del sitio XML y reescritura usuario del sitio amigable

  • xmlsitemap.php (Google mapa del sitio XML)
  • sitemap.php (mapa del sitio fácil de usar interfaz gráfica de usuario)

Quiero para lograr esto con las reglas de reescritura:

reescritura de site.com/sitemap.php~~V~~singular~~3rd
se sientan e.com/sitemap~~V~~singular~~3rd
site.com/sitemap/

reescritura de site.com/xmlsitemap.php~~V~~singular~~3rd
site.com/sitemap.xml

Aquí es lo que he tratado. El problema es que está reescribiendo sitemap.xml a sitemap.php (GUI).

Options +FollowSymlinks 
RewriteEngine On 

RewriteRule sitemap.xml xmlsitemap.php 
RewriteRule sitemap sitemap.php 

# also tried using [L] option on both 
+0

¿Qué no funciona? ¿Has empezado con una sola reescritura para un solo guión y lo has hecho funcionar? – hakre

+0

Reescribe site.com/sitemap.xml a sitemap.php que es incorrecto. sitemap.xml debe reescribir a xmlsitemap.php. Ambas reglas funcionan cuando la otra está comentada, el problema es que no funcionan juntas. – Chris

Respuesta

7

Antes de nada, vuelva a agregar la bandera [L]. En segundo lugar, si una regla reemplaza a la otra, comprobar su reglas de reescritura de expresiones regulares para que sean mejor adaptación, al igual que toda la solicitud:

RewriteRule ^sitemap\.xml$ xmlsitemap.php [L] 
RewriteRule ^sitemap$ sitemap.php [L] 

La bandera L impedirá ejecutar reglas adicionales si ya emparejados (pero todavía puede desencadenar una redirección interna, vea también el END flag instead of the L flag).

+0

Gracias, funciona. Acabo de agregar otra regla con un seguimiento/para acomodar site.com/sitemap/ – Chris

Cuestiones relacionadas