Почему EE разбирает несуществующие сегменты URL? - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть проблема, которую я не могу объяснить. Я создал URL-адрес следующим образом: domain.com/lang/segment_1/segment_2/segment_3 (сегмент_3 - это «url_title»). Также я использовал комбинацию операторов if, чтобы избежать загрузки несуществующих URL (пример ниже).

{if segment_4}{redirect="404"}{/if}
{if segment_2 != "segment_2"}{redirect="404"}{/if}
{if segment_2 == "segment_2"}
{if segment_4 == ""}

  {exp:channel:entries channel="channel_name" require_entry="yes" url_title="{segment_3}" dynamic="no" limit="1" disable="categories|member_data|pagination"}
    {if no_results}
    {redirect="404"}
    {/if}
    ...
  {/exp:channel}

{/if}
{/if}

Все отлично работает. Если я добавлю любой сегмент_4, я получу страницу 404, как и ожидалось. Но ... Если я также добавлю сегмент_5 (и сегмент_6, сегмент_7 позже), то я не получу страницу 404. Вместо того, чтобы браузер пытался загрузить «что-то», я наконец-то получил страницу 504 (из CloudFlare). Интересным фактом является то, что проблема возникает ТОЛЬКО, когда последний сегмент «url_title».

Вопрос: почему я не получаю страницу 404, когда не добавлены несуществующие сегменты? Это действительно раздражает меня, потому что я не знаю, что случилось.

Я использую EE 3.5.16 (строгие URL-адреса включены).

Спасибо за вашу помощь!

...