请解释一下这个.htaccess文件的初学者

时间:2013-10-31 09:14:46

标签: php .htaccess

我有一些麻烦,了解如何动态组合简单的一个语言网站。如果有人能用婴儿语言向我解释下面代码的每一部分是什么意思,我真的很感激:

RewriteEngine On

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

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

提前谢谢!

4 个答案:

答案 0 :(得分:7)

# 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

答案 1 :(得分: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中的其他规则。

答案 2 :(得分:0)

  1. 启用RewriteEngine

  2. RewriteCond定义何时启动RewriteRule,因为它会检查文件扩展名(如果不是,因为!)

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

答案 3 :(得分:0)

您的htaccess会重写您网站页面的网址。

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/