我有一个无法解释的问题。我创建了这样的URL:domain.com/lang/segment_1/segment_2/segment_3(segment_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}
一切正常。如果我添加任何segment_4,则将得到预期的404页面。但是……如果我还添加了segment_5(以及以后的segment_6,segment_7),那么我不会得到404页面。而不是那个浏览器尝试加载“东西”,最后我得到了504页(来自CloudFlare)。有趣的事实是,仅当最后一段是“ url_title”时,才出现此问题。
问题是:当添加不存在的段时,为什么我没有获得404页面?我真的很烦,因为我不知道怎么了。
我正在使用EE 3.5.16(已启用严格的URL)。
感谢您的帮助!