.htaccess-如何基于lookahead regex规则比较url中的名称?
给定以下url结构:.htaccess-如何基于lookahead regex规则比较url中的名称?,regex,apache,.htaccess,mod-rewrite,Regex,Apache,.htaccess,Mod Rewrite,给定以下url结构:http://localhost/name/name 以及以下环境变量: RewriteRule ^.* - [E=ORIG_REQUEST:name/name] RewriteRule ^.* - [E=DIR_NAME:name] RewriteRule ^.* - [E=FILE_NAME:name] 如何根据lookaheadregex规则检查DIR\u NAME是否等于FILE\u NAME 我所拥有的: RewriteCond %{REQUEST_METHOD}
http://localhost/name/name
以及以下环境变量:
RewriteRule ^.* - [E=ORIG_REQUEST:name/name]
RewriteRule ^.* - [E=DIR_NAME:name]
RewriteRule ^.* - [E=FILE_NAME:name]
如何根据lookahead
regex规则检查DIR\u NAME
是否等于FILE\u NAME
我所拥有的:
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{ENV:ORIG_REQUEST} ^([^/]+)/(?=\1)$ [NC]
RewriteRule - [E=IS_EQUAL:true]
受启发,试试这个正则表达式。如果dir不等于file,则它将不匹配
:\/\/\w+\/(\w+)\/(?=\1)
演示
如何根据先行正则表达式规则检查DIR\u NAME
是否等于FILE\u NAME
这应该适合您:
RewriteRule ^ - [E=ORIG_REQUEST:name/name]
RewriteRule ^ - [E=DIR_NAME:name]
RewriteRule ^ - [E=FILE_NAME:name]
RewriteCond %{ENV:DIR_NAME}#%{ENV:FILE_NAME} ^([^#]+)#\1$
RewriteRule ^ - [E=IS_EQUAL:true]
仅用作两个变量之间的分隔符。它可以是任何东西#
捕获匹配组1中的第一个变量([^#]+)
DIR_NAME
是从第一个字符串捕获的值的反向引用\1
dir1/dir1
的htaccess正则表达式<代码>%{ENV:ORIG_REQUEST}^(\w+/(?=\1)$[NC]不是working@RafaSashi,阿努巴瓦执政官!J'ai réponduáta质疑前卫的传统。@RafaSashi je crois是一个如此简单的种族主义者。这是一项关于计算病毒点的竞争。这是克罗伊人的社区意识!这是一个非常有效的沟通方式,你的计划非常有效!你能告诉我你想做什么吗?意思是什么不起作用,我不是指你的规则。在环境变量上使用它似乎过于复杂了。我只是想在htaccess中将name/name
与lookahead regex规则进行匹配,我问这个问题,因为我是lookahead regex新手,我不懂。我不认为这个问题与环境变量有关。