我在理解如何动态组合简单的一种语言网站时遇到了一些麻烦。如果有人能用婴儿语言向我解释以下代码的每个部分的含义,我将不胜感激:
RewriteEngine On
RewriteCond %{REQUEST_URI} !\.(php|css|js|gif|png|jpe?g|pdf)$
RewriteRule (.*)$ templates/index.php [L]
先感谢您!
# Enable RewriteEngine to rewrite URL patterns
RewriteEngine On
# Every URI that not (! operator) ends with one of .php, .css, .js, .gif, .png, .jpg, .jpeg or .pdf
RewriteCond %{REQUEST_URI} !\.(php|css|js|gif|png|jpe?g|pdf)$
# Will be redirected to templates/index.php
RewriteRule (.*)$ templates/index.php [L]
# Sample
# /foo/bar.php -> /foo/bar.php
# /foo/bar.html -> templates/index.php
RewriteEngine On
打开重写引擎
RewriteCond %{REQUEST_URI} !\.(php|css|js|gif|png|jpe?g|pdf)$
匹配所有不以 .php、.css 等结尾的请求。
!
= 否定以下表达式(“不匹配”)\.
= 一个点(必须转义,所以它是字面意思。没有反斜杠,它将匹配每个字符)(php|css|js|gif|png|jpe?g|pdf)
= 这些选项之一。jpe?g
表示e
是可选的,所以它匹配jpg
和jpeg
$
= 请求结束。RewriteRule (.*)$ templates/index.php [L]
将所有与正则表达式不匹配的请求重定向到templates/index.php
. [L]
表示这是最后一条规则,因此不会应用此 .htaccess 中的其他规则。
您的 htaccess 会重写您网站页面的 URL。
RewriteEngine On
只是意味着您的 Web 服务器 Apache 现在将打开他的重写引擎。
然后是重写规则,它有一个条件。一、条件:
RewriteCond %{REQUEST_URI} !\.(php|css|js|gif|png|jpe?g|pdf)$
条件是客户端请求的 URL。这意味着如果该 URL 不以 .php、.css、.js、.gif、.png、.pdf、.jpg 或 .jpeg 结尾,则将适用以下规则。
RewriteRule (.*)$ templates/index.php [L]
该规则意味着 URL 的结尾,可能是“.literally_anything”,将被替换为“templates/index.php”
[L] 表示这是最后的重写规则。
更多解释:http: //www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/
启用重写引擎
RewriteCond 定义 RewriteRule 何时启动,因为它正在检查文件扩展名(如果不是在这种情况下,因为!)
当 RewriteCond 为 true 时,请求被重定向到 templates/index.php