理解 .htaccess 重写规则

vickysan007rv

我偶然发现了这个.htaccess文件,并试图弄清楚它的作用。

RewriteEngine On
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !index\.php$
RewriteCond %{REQUEST_URI} !upload\.php$
RewriteRule ^ - [L,H=default-handler]
穆罕默德·埃尔哈格
RewriteEngine On

上面一行说,你激活了mod_rewrite

RewriteCond %{REQUEST_URI} !/$

上面一行是要与 URI 一起应用的条件,URI 是主机后路径的一部分,不包括查询字符串http://httpd.apache.org/docs/current/mod/mod_rewrite.html,例如http://example .com/whatever/index.php , /whatever/index.php 在这种情况下是 URI 部分,然后是!/$表示! /结尾$因此此条件将匹配任何不以/结尾的 URI

RewriteCond %{REQUEST_URI} !index\.php$
RewriteCond %{REQUEST_URI} !upload\.php$

上面的两行也是不匹配以 index.php 或 upload.php 结尾的 URI 的条件

RewriteRule ^ - [L,H=default-handler]

上面一行说明了应该根据这些条件应用的规则,它包括 Pattern 、替换和标志,你可以在这里阅读更多https://httpd.apache.org/docs/2.4/rewrite/intro.html在这里意味着任何请求通过上面的条件将被默认处理程序处理,所以模式是^这是正则表达式https://httpd.apache.org/docs/2.4/rewrite/intro.html意味着匹配字符串的开头和替换是-哪个意味着什么都不做然后标志 [L,H=default-handler] ,L意味着停止处理规则集,H意味着强制使用指定的处理程序处理结果请求,它是您的情况下的默认处理程序。

看到这个关于标志https://httpd.apache.org/docs/2.4/rewrite/flags.html和这个了解处理程序https://httpd.apache.org/docs/2.4/handler.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章