Regex htaccess规则-如果URL不匹配,如何匹配';不包含特定字符串

Regex htaccess规则-如果URL不匹配,如何匹配';不包含特定字符串,regex,.htaccess,negative-lookahead,Regex,.htaccess,Negative Lookahead,我有一些页面具有以下URL结构: /详情/id/125/ 出于某种原因,谷歌索引了一些看起来像/details/125/但缺少/id/part的页面。这会导致重复的内容问题 因此,我需要一个.htaccess重定向匹配规则,以便在URL包含/details/但不包含/id/之后重定向到404页面 到目前为止,我所做的尝试没有任何运气: 重定向匹配404^/details/(?!id)/ 在我的研究中,我发现了这些信息,我相信这些信息与我需要做的事情有关,但我很难理解它们。对于您的需要: Rewr

我有一些页面具有以下URL结构:

/详情/id/125/

出于某种原因,谷歌索引了一些看起来像/details/125/但缺少/id/part的页面。这会导致重复的内容问题

因此,我需要一个.htaccess重定向匹配规则,以便在URL包含/details/但不包含/id/之后重定向到404页面

到目前为止,我所做的尝试没有任何运气:

重定向匹配404^/details/(?!id)/

在我的研究中,我发现了这些信息,我相信这些信息与我需要做的事情有关,但我很难理解它们。

对于您的需要:

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/details/.+$
RewriteRule !^/details/id/.+$ /b/ [R=404,L]

这也可能对你有用:谢谢。不幸的是,对于我的特殊情况,我需要使用htaccess来完成它。我很困惑。这个/b/部件是做什么用的?我有不同url结构的页面,您列出的重写规则根本没有指定/details/或/id/段。从我非常有限的知识来看,从外观上看,你的规则将捕获所有URL。哦,对不起。就在我检查服务器时粘贴)外观修改答案在我的htaccess中添加该选项只会产生一个错误500内部服务器错误。即使在htaccess测试工具中测试代码也不起作用。使用您的代码在顶行中尝试。它说“未满足此条件”规则中/b/部分的目的是什么?