我正在研究Apache语法,但是我不知道在哪里可以使用$1
和%1
通配符。我有下一个代码:
RewriteCond %{HTTP_COOKIE} !PHPSESSID=(.*);.*$ [OR]
RewriteCond %{REQUEST_URI} !^/.*/usuarios/%1/.*$
RewriteCond %{REQUEST_URI} ^/.*/usuarios/
RewriteRule \.(gif|jpe?g|png|wbmp)$ - [R=404,L]
它的意思是:
/.../usuarios/session_id/...
。第一部分工作不正常。我可以%1
像上面一样使用吗?我可以在第一部分中使用它RewriteRule
吗?
如果没有,我该如何执行该行为?
%1
-从RewriteCond
RHS的RHS中捕获并使用RewriteRule
$1
-从或的RHS的RewriteRule
LHS中捕获并使用RewriteCond
RewriteRule
PS:您的条件RewriteCond %{REQUEST_URI} !^/.*/usuarios/%1/.*$
将无法正常工作,因为您不能%1
在以下产品的RHS中使用RewriteCond
更新:您可以尝试使用反向引用变量这样的事情:
RewriteCond %{HTTP_COOKIE} !PHPSESSID=(.+) [OR,NC]
RewriteCond %{HTTP_COOKIE}:%{REQUEST_URI} ^PHPSESSID=(.*?);:(?!.*?/usuarios/\1).* [NC]
RewriteRule ^.*?/usuarios/.+?\.(gif|jpe?g|png|wbmp)$ - [R=404,L]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句