15053971836 注册 / 登录

伪静态语法

时间: 阅读:444
伪静态语法

最佳回答

seo从业者

seo从业者

2023-01-15 16:12:51

rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用。

执行顺序:(location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/)


语法:rewrite regex replacement [flag];


flag标志位


last : 相当于Apache的[L]标记,表示完成rewrite

break : 停止执行当前虚拟主机的后续rewrite指令集

redirect : 返回302临时重定向,地址栏会显示跳转后的地址

permanent : 返回301永久重定向,地址栏会显示跳转后的地址


f判断指令

语法为if(condition){...},对给定的条件condition进行判断。如果为真,大括号内的rewrite指令将被执行,if条件(conditon)可以是如下任何内容:

当表达式只是一个变量时,如果值为空或任何以0开头的字符串都会当做false

直接比较变量和内容时,使用=或!=

~正则表达式匹配,~*不区分大小写的匹配,!~区分大小写的不匹配

-f和!-f用来判断是否存在文件

-d和!-d用来判断是否存在目录

-e和!-e用来判断是否存在文件或目录

-x和!-x用来判断文件是否可执行


例如,图片的防盗链可以这样写:

location ~* .(gif|jpg|png|swf|flv)$ {

valid_referers none blocked www.yourhost.com;   

if ($invalid_referer)

{

return 404;

} //防盗链

}


全局变量

下面是可以用作if判断的全局变量

$args : #这个变量等于请求行中的参数,同$query_string

$content_length : 请求头中的Content-length字段。

$content_type : 请求头中的Content-Type字段。

$document_root : 当前请求在root指令中指定的值。

$host : 请求主机头字段,否则为服务器名称。

$http_user_agent : 客户端agent信息

$http_cookie : 客户端cookie信息

$limit_rate : 这个变量可以限制连接速率。

$request_method : 客户端请求的动作,通常为GET或POST。

$remote_addr : 客户端的IP地址。

$remote_port : 客户端的端口。

$remote_user : 已经经过Auth Basic Module验证的用户名。

$request_filename : 当前请求的文件路径,由root或alias指令与URI请求生成。

$scheme : HTTP方法(如http,https)。

$server_protocol : 请求使用的协议,通常是HTTP/1.0或HTTP/1.1。

$server_addr : 服务器地址,在完成一次系统调用后可以确定这个值。

$server_name : 服务器名称。

$server_port : 请求到达服务器的端口号。

$request_uri : 包含请求参数的原始URI,不包含主机名,如:”/foo/bar.php?arg=baz”。

$uri : 不带请求参数的当前URI,$uri不包含主机名,如”/foo/bar.html”。

$document_uri : 与$uri相同。


下面是QeePHP的伪静态示例:

if (!-d $request_filename) {

rewrite ^/([a-z-A-Z]+)/([a-z-A-Z]+)/?(.*)$ /index.php?namespace=user&controller=$1&action=$2&$3 last;

rewrite ^/([a-z-A-Z]+)/?$ /index.php?namespace=user&controller=$1 last;

break;

}

最新回答共有5条回答

  • 匿名用户
    回复
    2023-01-15 19:19:03

    谢谢邀请,

    1. 先涨点知识——WiKiHow

    知识不够APP来凑

    这是一款超棒的搜索指南,也是生活的百科全书。你可以这款APP里搜索到关于生活、穿搭、工作等各种小技巧,涨知识必备神器,就连孵小鸡都能一步步教你实现!

    不仅可以学到技巧,你也可以编辑自己的答案来帮助别人,并且大部分解答都配有漫画,让你能有趣的涨知识!

    2. 提高工作效率——录音转文字助手

    速度不够工具来凑

    每天准时下班很难?打字速度很慢?那你没用对方法吧,这款工具利用语音转文字的办法帮你快速记录,会议记录简单,演讲采访简单,讲座笔记更简单。

    还能进行粤语转文字哦,就连录音笔记录的录音文件,都能将其转为文字,记录就是这么简单。

  • seo从业者
    回复
    2023-01-15 19:19:03

    分享9个我不舍得卸载的免费小众软件!让你消遣大把时光时,还能偷偷提升技能,省下不少钱!


    01 Stellarium——免费看星星

    一款让你免费看星空的软件,界面超浪漫!


    晚上当你开启遥感系统时,你的手机会随着你的视线,不断变换目前你眼前能看到的星空!


    真的超美!这个可以定位你的位置哦,你也可以选择时间,我是白天写的,但是把时间调整成了今天的23:00,夜空和星星更配~


    可以用这个小软件,和自己的爱人或者家人,偶然抬头看看星空,找找星座,学习下知识,也是一种浪漫!

  • 专业建网站
    回复
    2023-01-15 19:19:03

    大家好,我是超多干货的乐恬,我又来了,这期app满满干货,真是相见恨晚!学习 生活 看剧 阅读 赚零花 变美 自律 提高美感等等的app,这里都有!错过就后悔你去吧!建议收藏!网友直呼:太全啦!

    这期还是给大家推荐app,有什么需要和反馈评论区告诉我





    &

  • 专业建网站
    回复
    2023-01-15 18:18:53

    RewriteBase / 从网站根目录起
    RewriteCond 定义规则生效的条件
    不能可能是服务器没有开启重写
    简单看了下你的代码,是让html指向到php文件,如果可以使用应该是about.html和about.php指向到一个文件上,而不是所有的php都显示成html.
    吼吼,看这个傻瓜教程可能解决你的一个问题
    http://php100.com/html/shipinjiaocheng/PHP100shipinjiaocheng/2009/0714/3074.html
    这个教程是入门级的,一些相对复杂点的应用没有