WEB运用Apache/Nginx伪静态数据标准配对p>难题是那样的,我构建了一个网站icon标志爬取的API插口,一切正常" />

全国咨询热线:18720358503

Apache/Nginx伪静态数据标准配对出現的难题与处理

类别:行业新闻 发布时间:2021-03-24 浏览人次:

脚本制作程序编写 企业网站建设 資源共享 帮我留言板留言 有关

' next-text='' view="0" >WEB运用Apache/Nginx伪静态数据标准配对p>

难题是那样的,我构建了一个网站icon标志爬取的API插口,一切正常状况下目标的传参是根据$_GET['url']获得的,因而基本获得标志的详细地址应当是:

?url=zhang.ge

?url=p>

以便打开访问器缓存文件和事后的CDN缓存文件,我的设计方案构思以下:

①、在标志API网站导航下在建一个cache文档夹,以网站域名.ico的方式储存标志文档,例如zhang.ge.ico

②、当爬取某一网站的ico时,先根据Nginx或Apache分辨是不是存有缓存文件文档,假如存有就立即回到给访问器,那样在没打开CDN的状况下,由于回到的是纯静态数据文档,访问器可能全自动缓存文件,也便是回到304情况,载入速率获得提高!

以便打开访问器缓存文件,我将详细地址以下伪静态数据化:

zhang.ge

p>

它是以前写的Nginx下的伪静态数据标准:

#将包括/,省掉php编码的动态性分辨
rewrite ^/cache/$1.ico last;
#下列分辨关键是以便防止API的原素一同被伪静态数据了(最终用与逻辑性分辨$type = abc就可以)!
set $type '';
if ( !-f $request_filename ){ #以便不和API网页页面上的静态数据資源矛盾,清除已存有的文档恳求
 set $type a;
if ( $request_uri !~ (\.|/)$){ #不配对含 . 或以/末尾的恳求,以便适配[/]恳求;
 set $type '${type}b';
if ( $request_uri !~ cache ){ #以便不和第一条标准矛盾,不配对带有cache的恳求
 set $type '${type}c';
#nginx不兼容多种标准一同分辨,因此先分离分辨获得flag,最终合拼分辨就可以:
if ( $type = abc ) {
 #将标准外的别的全部恳求重新写过到 cache/网站域名.ico
 rewrite ^/(.*)$ /cache/$1.ico last;
#假如恳求的文档已存有,则立即回到给客户,已不根据PHP
if (-f $request_filename) { 
 break;
#假如恳求的文档不会有,则交到index.php解决
rewrite ^/cache/(.*).ico$ /index.php?url=$1 last;

那时候发觉不可以起效!如何都配对不上/了!

今日,我将这一标志API搬新家来到万网的完全免费服务器上,是Apache自然环境,因此依照nginx的标准又写了一遍:

RewriteEngine on
RewriteBase /
#重新写过除掉恳求中的"/(.*)$ /cache/$1.ico [L]
#和nginx一致的标准分辨,以便防止API被伪静态数据
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.|/)$
RewriteCond %{REQUEST_URI} !cache
#将标准以外的别的恳求所有重新写过到/cache/网站域名.ico
RewriteRule ^(.*)$ /cache/$1.ico [L]
#若文档不会有,则丢给index.php解决
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?url=$1 [L]

仍然不好!奇了怪了,如何也不能配对p>

实际上再用nginx不成功以后,我用php获得$_GET['url']发觉获得的主要参数中的,少一个斜杠!并且立即应用?url=zhang.ge,少一个斜杠!

今日鬼使神差的试了下伪静态数据中分辨http:/,結果取得成功了!卧槽原先要配对,少一个斜杠!真正难以置信,之前几乎没碰到过!

因此所述两个伪静态数据标准应当以下撰写: A. Nginx伪静态数据:
#将包括/,省掉php编码的动态性分辨(具体上是配对http:/)
rewrite ^/http:/(.*)$ /cache/$1.ico last;
#下列分辨关键是以便防止API的原素一同被伪静态数据了!
if ( -f $request_filename ){ #以便不和API网页页面上的静态数据資源矛盾
 set $type 1;
if ( $request_uri ~ (\.|/)$){ #以便不和API矛盾,即 / 这一恳求
 set $type 1;
if ( $request_uri ~ cache ){ #以便不和第一条标准矛盾
 set $type 1;
#nginx不兼容多种标准一同分辨,因此分离写。
if ( $type != 1 ) {
 #将标准外的别的全部恳求重新写过到 cache/网站域名.ico
 rewrite ^/(.*)$ /cache/$1.ico last;
#假如恳求的文档已存有,则立即回到给客户,已不根据PHP
if (-f $request_filename) { 
 break;
#假如恳求的文档不会有,则交到index.php解决
rewrite ^/cache/(.*).ico$ /index.php?url=$1 last;
 B. Apache伪静态数据:
RewriteEngine on
RewriteBase /
#重新写过除掉恳求中的"
RewriteRule ^http:/(.*)$ /cache/$1.ico [L]
#和nginx一致的标准分辨,以便防止API被伪静态数据
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.|/)$
RewriteCond %{REQUEST_URI} !cache
#将标准以外的别的恳求所有重新写过到/cache/网站域名.ico
RewriteRule ^(.*)$ /cache/$1.ico [L]
#若文档不会有,则丢给index.php解决
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?url=$1 [L]

此外,要查询是不是完成访问器缓存文件非常简单,随意浏览一个ico详细地址,例如:

geticon/zhang.ge

work(互联网选择项卡),多更新一次就可以见到304情况了:

Apache/Nginx伪静态规则匹配Nginx伪静态规则匹配></p>
<p>304表明当今文档来源于访问器缓存文件,由于恳求的文档和服务段的文档一致,不用反复读取!</p>
<p>自然,文中提到的伪静态数据标准仅仅一一部分,假如要完成CDN加快,那还得增加相对的标准,但是这全是后话了,等下一次我还在张戈blog共享这一网站标志爬取API源代码的情况下,会一并贴上,烦请希望!</p>

9 条答复

     </div>
    <div class=

下一篇:没有了

推荐阅读

Apache/Nginx伪静态数据标准配对出現的难题与处理

脚本制作程序编写企业网站建设資源共享帮我留言板留言有关' next-text='' view="0" >WEB运用Apache/Nginx伪静态数据标准配对p>难题是那样的,我构建了一个网站icon标志爬取的API插口,一切正常...

2021-03-24
石家庄市企业网站建设搞好不可易,四点剖析

现如今做啥子事情,好像好像都会加速,铁路线要加速,CPI要加速,但是加速的不良影响却很比较严重,高铁动车追尾了,通胀了,因此加速有时候其实不是一件好管闲事儿,如同拔苗...

2021-03-23
廉价网站制作究竟划算在哪儿里

当今部位: > 层面学校 > 建网站专业知识 > 建网站普遍难题 > 廉价网站制作究竟划算在哪儿里 2020-03-01  访问频次:     创作者:郑州市建立网站  标识: 內容引言:网站建设从好...

2021-03-23
河南省互联网营销推广企业

河南省互联网营销推广企业详细介绍seo提升为何越来越越难做?SEO越来越越难做,检索模块越来越越智能化化,之前的许多方式早已无效了;竟价广告宣传市场竞争成本费越来越越高,...

2021-03-23
郑州市seo优化 郑州市seo优化企业 郑州市seo优化排

5,必须出示网站后台管理,对于死链接,网页布局,题目,重要词设定,叙述,友谊连接,编码等多方面开展剖析和调节。 6,提升周期时间:一般2-3个月的時间,实际要依据重要词的...

2021-03-23
电气设备火灾事故监管器

当隧道施工内产生火灾事故时,隧道施工能变成烟雾的安全通道,因为进出口少,烟雾不容易散出,应快速开启排风系统排烟,也能用排烟车和救火设备人送风排烟。中隧道施工、短隧...

2021-03-23
X

400-8700-61718720358503
企业邮箱2639601583@qq.com
官方微信