找回密码
 立即注册

手机短信,快捷登录

QQ登录

只需一步,快速开始

搜索

网站给挂黑链?百度收录大量带问号?的页面怎么删除

[复制链接]
发表于 2023-2-14 11:13:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
正则表达式匹配带问号(?)的动态链接

问:网站首页被人刷了好多动态浏览带?的链接,被百度收录了,想要用.htaccess文件设置正则进行匹配带问号链接从而返回404状态码,现在差的就是正则表达式,不知道匹配带问号的正则咋写

答:
域名/.*\?.*
\?就可以了

问:http和https协议和不同后缀的站点都有?

答:
https?://.*\?.*


---------------------------案例解释-------------------------------------------

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond $1 !^(index\.php|images|robots\.txt)

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

意思是:

第一行、将RewriteEngine引擎设置为on,就是让url重写生效;
第二行、 如果文件存在,就直接访问文件,不进行下面的RewriteRule.
第三行、 如果目录存在就直接访问目录不进行RewriteRule
同理: RewriteCond %{REQUEST_URI} !^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg)$ #如果是这些后缀的文件,就直接访问文件,不进行Rewrite

第四行、配置url重写规则,!^(index\.php|images|robots\.txt) 这个正则表达式指明了哪些文件不需要重写,而是直接访问;
第五行、^(.*)$是一个正则表达式,意思是对所有请求都发送到/index.php/$1,熟悉url的人都知道,以反斜杠(/)开头的,都是相对路径,相对于谁呢?根,也就是网址。
原来自己到网站访问到URL是这样到:http://网址/index.php?/控制器/函数,现在想去掉index.php?,这里index.php后面还多了一个问号,好烦人的,结果文件建好后,输入网址访问,报了nginx 404错误,我的nginx是1.4.7版本

后来经过多方寻找,终于搞定了,打开nginx到配置文件nginx.conf,在server 部分加入以下命令

if (!-e $request_filename) {
      rewrite ^.*$ /index.php last;
    }

保存后,重启nginx (/etc/init.d/nginx restart) ,再输入没有带index.php?的网址,真到可以访问了

测试3
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|集设屋资源网 ( 渝ICP备2023015870号-1 )

GMT+8, 2024-11-8 03:48 , Processed in 0.248669 second(s), 40 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表