RewriteCond %{REQUEST_URI} ^/new/
RewriteRule ^(.*)$ new.php?title=$1 [L,QSA]
我很困惑这是做什么的....
REQEUST_URI做了什么?
答案 0 :(得分:1)
如果(RewriteCond
)请求的URI以/new/
开头,则调用脚本new.php
(RewriteRule
)。它将作为title
参数传递请求的URI,将保留查询字符串(如果有)(QSA
标志),并且在此之后不会处理其他规则({{ 1}}标志)。
即
L
会致电http://example.com/new/test.html
http://example.com/new.php?title=/new/test.html
会致电http://example.com/new/test2.html?query=test3
答案 1 :(得分:0)
如果URL以“/ new /”开头,则会将URL重写为new.php,将旧URL作为“title”字段的值。
“/新/美孚+ Bar吗?BAM =臭虫AWWK!”成为“new.php?title = / new / Foo + Bar& bam = bug-AWWK!”或者(如果RewriteRule在.htaccess文件中)“new.php?title = new / Foo + Bar& bam = bug-AWWK!”。
答案 2 :(得分:0)
基本上它会制作精美漂亮的网址。
它需要一个像http:/www.example.org/new/foobar这样的网址,并在后台调用http://www.example.org/new.php?title=foobar。
REQUEST_URI是主机名之后的所有内容。在上面的例子中是/ new / foobar。
答案 3 :(得分:0)
您的示例可以解释为
RewriteCond %{REQUEST_URI} ^/new/
如果URL请求是您的主机名(REQUEST_URI),请按new
文件夹...
RewriteRule ^(.*)$ new.php?title=$1 [L,QSA]
然后将其重写为主机名,后跟提供的字符串new.php?title=
,并在原始网址请求中以/new/
后的变量结束。
示例:URL请求:
http://yoursite.com/new/orange
服务器会将其解释为:
http://yoursite.com/new.php?title=orange
答案 4 :(得分:0)
REQEUST_URI 包含当前absolute URL path。因此,该规则将应用于URL路径以/new/…
开头的每个请求,并在内部将其重写/重定向到当前目录中的 new.php 文件(假设您没有更改)带有RewriteBase
)的基本URL路径。
因此,如果您在
的.htaccess文件中使用此规则/
),/new/foo/bar
的请求将被重写/重定向到/new.php?title=new/foo/bar
。/new/
,/new/foo/bar
的请求将被重写/重定向到/new/new.php?title=foo/bar
。/new/foo
,请求将被重写/重定向到/new/foo/new.php?title=bar
。