Eu estou usando o mod_rewrite para escrever domain.com/index.php? = string para domain.com/string. Eu preciso ter o site exibir o index.php? = Sitemap quando um robô vai para sitemap.html para fins de SEO. Eu tentei muitas variações e consegui / sitemap mostrar /sitemap.html usando o código:
RewriteRule ^sitemap/?$ http://www.domain.com/sitemap.html [R]
A reescrita compreensivelmente não corrige o problema, no entanto, porque na verdade ele está procurando sitemap.html e não index.php? P = sitemap.
As regras atualmente em vigor são:
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]
Qualquer ajuda é muito apreciada.
Respostas:
0 para resposta № 1Basta adicionar isso entre ambas as suas regras:
RewriteRule ^sitemap.html$ index.php?p=sitemap [L]
Então parece tudo:
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]