/ / Apache mod_rewrite spezifische dynamische URL - PHP, Apache, .htaccess, mod-rewrite, Syntaxfehler

Apache mod_rewrite-spezifische dynamische URL - php, Apache, .htaccess, mod-rewrite, Syntaxfehler

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 № 1

Fü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]