Как обрабатывать HTML-страницы с помощью RewriteMap и Rewrite - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть карта перезаписи с содержанием, похожим на ниже -

    /sub1/sub2/  /content/sub1/sub2.html
    /sub3/sub4/  /content/sub3/sub4.html
    /sub5/  /content/sub5.html

    RewriteMap testuri dbm:conf/extra/testuri.map
    RewriteCond ${testuri:$1} !=""
    RewriteRule ^(.*)$ ${testuri:$1|/test} [PT,L]

Над URL работает нормально, и он перенаправляет источник на цель с проходом.

Теперь мое требование состоит в том, чтобы, если к URI обращаются с расширением html (например, domain.com/sub1/sub2.html), он должен был перенаправить на страницу с кодом состояния 404.

(1) Может ли это быть достигнуто без изменения текущего файла карты? Примечание. На моем веб-сайте только страницы в файле карты dbm - это страницы с расширением no-html. Все страницы с расширением .html. (2) Все страницы, которые не существуют в карте dbm, являются страницами .HTML и должны быть перенаправлены на страницу 404 при доступе с / (или без какого-либо расширения) в конце?

Может кто-нибудь помочь?

Привет

1 Ответ

0 голосов
/ 12 апреля 2019

Попробуйте поставить это в верхней части ваших правил:

 RewriteCond %{THE_REQUEST} \.html/?\sHTTP
 RewriteRule ^ - [R=404]
...