В принципе, все, что ищет файл sitemap.xml, будет передано sitemap.php, но без его отображения пользователю, то есть URL-адрес не изменяется для пользователя. Вот некоторые из документации:
Взятые из Apache mod_rewrite Flags:
RewriteRule pattern target [Flag1,Flag2,Flag3]
L | последняя
код [L] флаг вызывает mod_rewrite прекратить обработку набора правил. В большинстве контекстов это означает, что если правило совпадает, дальнейшие правила не будут обработаны.
Если вы используете RewriteRule в файлах .htaccess или в разделах, важно иметь некоторое представление о том, как обрабатываются правила. Упрощенная форма этого заключается в том, что после того, как правила были обработаны, переписанный запрос передается механизму синтаксического анализа URL-адресов, чтобы делать то, что может быть с ним. Вполне возможно, что по мере обработки обработанного запроса файл или раздел .htaccess может быть встречен снова, и, следовательно, набор правил может снова запускаться с самого начала. Чаще всего это произойдет, если одно из правил вызывает перенаправление - внутреннее или внешнее - заставляя процесс запроса начать работу.
Поэтому важно, если вы используете директивы RewriteRule в одном из этих контекстов, вы принимаете явные шаги, чтобы избежать циклирования циклов и не считайте только флаг [L], чтобы прекратить выполнение ряда правил, так как показано ниже.
Приведенный здесь пример будет переписывать любой запрос index.php, давая исходный запрос как аргумент строки запроса index.php, однако, если запрос уже используется для index.php, это правило будет пропущено.
RewriteCond %{REQUEST_URI} !index\.php
RewriteRule ^(.*) index.php?req=$1 [L]
NC | NoCase
Использование [NC] флаг заставляет RewriteRule быть подобраны в зависимости от регистра. То есть, не имеет значения, отображаются ли буквы в верхнем или нижнем регистре в согласованном URI.
В приведенном ниже примере любой запрос на файл изображения будет проксирован на выделенный сервер изображений. Матч не чувствителен к регистру, поэтому файлы .jpg и .JPG приемлемы, например.
RewriteRule (.*\.(jpg|gif|png))$ http://images.example.com $1 [P,NC]
QSA | qsappend
Когда замена URI содержит строку запроса, поведение по умолчанию RewriteRule, чтобы отменить существующую строку запроса, и заменить его вновь генерируемым. Использование флага [QSA] приводит к объединению строк запроса.
Рассмотрим следующее правило:
RewriteRule /pages/(.+) /page.php?page=$1 [QSA]
С [QSA] флаг, запрос на /pages/123?one=two
будет отображаться на /page.php?page=123&one=two
. Без флага [QSA] этот же запрос будет сопоставлен с /page.php?page=123
, то есть существующая строка запроса будет отброшена.
будет ли это проходить как sitemap.xml для поисковых систем? – HELP
У вызывающего не должно быть никаких указаний на то, что sitemap.xml не существует, если sitemap.php делает работу, подражая правильному содержимому xml. – frayser