2015-02-19 2 views
0

Я использую mod_rewrite для написания domain.com/index.php?=string для domain.com/string. Мне нужно, чтобы на веб-сайте отображался файл index.php? = Sitemap, когда робот отправляется в sitemap.html для целей SEO. Я пробовал много вариаций и получил/карту сайта, чтобы показать /sitemap.html с помощью кода:Apache mod_rewrite специфический динамический url

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

переписывания по понятным причинам не устранило проблему, однако, потому что это на самом деле ищет sitemap.html не index.php ? р = карта сайта.

Правила в настоящее время на месте являются:

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] 

Любая помощь очень ценится.

+0

это это нормально? '? = sitemap' Я всегда использую его как'? p = sitemap' или что-то в этом роде –

ответ

0

Просто добавьте это оба между ними ваших правил:

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

Так что все это выглядит следующим образом:

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] 
+0

Это сработало отлично, спасибо! – Therealbob

Смежные вопросы