Использование Apache Httpd mod_rewrite для перезаписи URL на основе заголовка запроса Accept?

1205
Edy Bourne

Я пытаюсь переписать URL на основе заголовка Accept запроса. Я видел в документах, что это кажется возможным, но я нигде не смог найти подробностей или примеров того, как это сделать.

По сути, я бы хотел, чтобы запросы /abc/index.htmlбыли переписаны в соответствии с заголовком Accept:

Запросы с Accept: application/vnd.x.v1+jsonперезаписать как /v1/abc/index.html Запросы с Accept: application/vnd.x.v2+jsonпереписать как/v2/abc/index.html

и так далее. И запросы с общим application/jsonзаголовком Accept или вообще без заголовка Accept переписываются как/v5/abc/index.html

Любые указатели на то, кто я мог бы сделать это с благодарностью!

Спасибо!

1

1 ответ на вопрос

1
wurtel
RewriteCond % ^application/vnd\.x\.(v[1-9])\+json RewriteRule ^(/abc/index\.html)$ /%1/$1 [L] 

The RewriteCond line matches the Accept: header and captures the vX string.

The RewriteRule does the actual rewriting and prepends the RewriteCond captured string to the now captured location; using % interpolates RewriteCond captures, $ interpolates RewriteRule captures.

Adjust patterns etc. to suit.

Это сработало отлично! Я изучу ваш пример, чтобы изучить это и найти другие способы использования. Спасибо!! Edy Bourne 9 лет назад 0

Похожие вопросы