J'utilise mod_rewrite pour écrire domain.com/index.php? = chaîne à domain.com/string. J'ai besoin que le site Web affiche l'index.php? = Sitemap lorsqu'un robot se rend sur sitemap.html à des fins de référencement. J'ai essayé beaucoup de variations et j'ai obtenu / sitemap pour afficher /sitemap.html en utilisant le code:
RewriteRule ^sitemap/?$ http://www.domain.com/sitemap.html [R]
Naturellement, la réécriture ne résout pas le problème car elle recherche en fait sitemap.html et non index.php? P = sitemap.
Les règles actuellement en place sont:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.com$
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ index.php?p=$1& [L,NC]
Toute aide est grandement appréciée.
Réponses:
0 pour la réponse № 1Ajoutez simplement ceci entre vos deux règles:
RewriteRule ^sitemap.html$ index.php?p=sitemap [L]
Donc tout ça ressemble à:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.com$
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301]
RewriteRule ^sitemap.html$ index.php?p=sitemap [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ index.php?p=$1& [L,NC]