/ / Apache mod_rewrite URL dinamico specifico - php, apache, .htaccess, mod-rewrite, syntax-error

URL dinamico specifico mod_rewrite di Apache - php, apache, .htaccess, riscrittura mod, sintassi-errore

Sto usando mod_rewrite per scrivere domain.com/index.php? = string a domain.com/string. Ho bisogno che il sito web mostri index.php? = Sitemap quando un robot va su sitemap.html per scopi SEO. Ho provato molte varianti e ho ottenuto / sitemap per mostrare /sitemap.html usando il codice:

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

La riscrittura comprensibilmente non risolve il problema tuttavia perché in realtà sta cercando sitemap.html not index.php? P = sitemap.

Le regole attualmente in vigore sono:

    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]

Qualsiasi aiuto è molto apprezzato.

risposte:

0 per risposta № 1

Basta aggiungere questo in entrambe le regole:

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

Quindi tutto sembra:

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]