繁体   English   中英

.htaccess-如何根据前瞻正则表达式规则比较网址中的名称?

[英].htaccess - how to compare names in url based on lookahead regex rule?

给定以下URL结构: http://localhost/name/name

和以下env变量:

RewriteRule ^.* - [E=ORIG_REQUEST:name/name]
RewriteRule ^.* - [E=DIR_NAME:name]
RewriteRule ^.* - [E=FILE_NAME:name]

如何根据lookahead正则表达式规则检查DIR_NAME是否等于FILE_NAME

我有的:

RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{ENV:ORIG_REQUEST} ^([^/]+)/(?=\1)$ [NC]
RewriteRule - [E=IS_EQUAL:true]

.htaccess启发-如何删除网址中的重复单词?

如何根据前瞻性正则表达式规则检查DIR_NAME是否等于FILE_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]
  • #仅用作2个变量之间的分隔符。 可以是任何东西。
  • ([^#]+)捕获匹配组#1中的第一个变量DIR_NAME
  • \\1是第一个字符串的捕获值的反向引用

试试这个正则表达式。 如果dir不等于file则不匹配

   :\/\/\w+\/(\w+)\/(?=\1)

演示在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM