/ / Apache mod_rewrite specyficzny dynamiczny URL - php, apache, .htaccess, mod-rewrite, składnia-błąd

Apache mod_rewrite specyficzny dynamiczny URL - php, apache, .htaccess, mod-rewrite, składnia-błąd

Używam mod_rewrite do pisania domain.com/index.php? = string do domain.com/string. Potrzebuję witryny wyświetlającej index.php? = Sitemap, gdy robot przechodzi do sitemap.html dla celów SEO. Próbowałem wielu odmian i otrzymałem / sitemap, aby pokazać /sitemap.html przy użyciu kodu:

    RewriteRule ^sitemap/?$ http://www.domain.com/sitemap.html [R]

Przepis w zrozumiały sposób nie rozwiązuje problemu, ponieważ faktycznie szuka sitemap.html, a nie index.php? P = sitemap.

Obecnie obowiązujące zasady to:

    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]

Każda pomoc jest bardzo doceniana.

Odpowiedzi:

0 dla odpowiedzi № 1

Po prostu dodaj to pomiędzy Twoimi regułami:

RewriteRule ^sitemap.html$ index.php?p=sitemap [L]

Wszystko wygląda tak:

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]