4

我在理解如何动态组合简单的一种语言网站时遇到了一些麻烦。如果有人能用婴儿语言向我解释以下代码的每个部分的含义,我将不胜感激:

RewriteEngine On

RewriteCond %{REQUEST_URI} !\.(php|css|js|gif|png|jpe?g|pdf)$

RewriteRule (.*)$ templates/index.php [L]

先感谢您!

4

4 回答 4

9
# 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
于 2013-10-31T09:20:43.963 回答
1
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是可选的,所以它匹配jpgjpeg
  • $= 请求结束。

RewriteRule (.*)$ templates/index.php [L]

将所有与正则表达式不匹配的请求重定向到templates/index.php. [L]表示这是最后一条规则,因此不会应用此 .htaccess 中的其他规则。

于 2013-10-31T09:23:20.530 回答
0

您的 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/

于 2013-10-31T09:26:25.997 回答
0
  1. 启用重写引擎

  2. RewriteCond 定义 RewriteRule 何时启动,因为它正在检查文件扩展名(如果不是在这种情况下,因为!)

  3. 当 RewriteCond 为 true 时,请求被重定向到 templates/index.php

于 2013-10-31T09:21:11.987 回答