Ich benutze mod_rewrite, um domain.com/index zu schreiben.php? = string to domain.com/string. Ich möchte, dass die Website die index.php? = Sitemap anzeigt, wenn ein Roboter zu SEO-Zwecken die sitemap.html aufruft. Ich habe viele Variationen ausprobiert und habe / sitemap dazu gebracht, /sitemap.html mit dem folgenden Code anzuzeigen:
RewriteRule ^sitemap/?$ http://www.domain.com/sitemap.html [R]
Das Umschreiben behebt das Problem verständlicherweise nicht, da tatsächlich nach sitemap.html und nicht nach index.php? P = sitemap gesucht wird.
Die derzeit geltenden Regeln sind:
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]
Jede Hilfe wird sehr geschätzt.
Antworten:
0 für die Antwort № 1Fügen Sie dies einfach zwischen Ihre beiden Regeln ein:
RewriteRule ^sitemap.html$ index.php?p=sitemap [L]
So sieht alles aus:
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]