/ / Apache mod_rewrite специфічний динамічний url - php, apache, .htaccess, mod-rewrite, синтаксис

Apache mod_rewrite конкретний динамічний url-php, apache, .htaccess, моди-перезапису, синтаксична помилка

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

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

Переписати, зрозуміло, не виправити проблему, але тому, що вона насправді шукає sitemap.html не index.php? P = sitemap.

Наразі діючі правила:

    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 для відповіді № 1

Просто додайте це між двома правилами:

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]