.htaccess 这种重写实际上是做什么的?
我不明白这是怎么回事 请求URI的作用是什么?如果URL以“/new/”开头,它会将URL重写为new.php,将旧URL作为“title”字段的值 “/new/Foo+Bar?bam=bug AWWK!”变为“new.php?title=/new/Foo+Bar&bam=bug AWWK!”或(如果重写规则在.htaccess文件中)“new.php?title=new/Foo+Bar&bam=bug AWWK!”。如果(.htaccess 这种重写实际上是做什么的?,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我不明白这是怎么回事 请求URI的作用是什么?如果URL以“/new/”开头,它会将URL重写为new.php,将旧URL作为“title”字段的值 “/new/Foo+Bar?bam=bug AWWK!”变为“new.php?title=/new/Foo+Bar&bam=bug AWWK!”或(如果重写规则在.htaccess文件中)“new.php?title=new/Foo+Bar&bam=bug AWWK!”。如果(RewriteCond)请求的URI以/new//code>开头,则调用
RewriteCond
)请求的URI以/new//code>开头,则调用脚本new.php
。它将被作为title
参数传递请求的URI,查询字符串(如果有)将被保留(QSA
标志),并且在此之后将不再处理进一步的规则(L
标志)
i、 e
http://example.com/new/test.html
将调用http://example.com/new.php?title=/new/test.html
http://example.com/new/test2.html?query=test3
将调用http://example.com/new.php?title=/new/test2.html&query=test3
基本上,它可以生成漂亮的URL
它采用类似http:/www.example.org/new/foobar的URL,并在后台调用
请求URI是主机名之后的所有内容。在上面的例子中是/new/foobar。你的例子可以解释为
RewriteCond %{REQUEST_URI} ^/new/
RewriteRule ^(.*)$ new.php?title=$1 [L,QSA]
如果URL请求是您的主机名(请求URI),后跟new
文件夹
RewriteCond %{REQUEST_URI} ^/new/
然后将它们重写为主机名,后跟提供的字符串new.php?title=
,并在原始URL请求中以/new/
后面的变量结束
示例:URL请求到:
RewriteRule ^(.*)$ new.php?title=$1 [L,QSA]
服务器将其解释为:
http://yoursite.com/new/orange
REQUEUST_URI包含当前的。因此,该规则将应用于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
阅读有关重写的文档:
http://yoursite.com/new.php?title=orange