www.xxx.com/article/93/cid/16.html
正常是这样的,但是
www.xxx.com/article/93/cid/16.html?id=2323
就是在正确的后面随便加东西也能正常打开,这个怎么设置?
search 查询部分都过滤有点变态了吧。。。
我理解这个代码得写在自定义的拦截器或者代码里面,那就顺着链路找呗。
层级越靠上越好,越早拦截损失越小。代码我看上面都有了,哦没有 js 的
if(location.search){
location.href = location.pathname
}
这里是几种确保 URL 格式严格匹配的办法:
通过 PHP 中的正则表达式来验证 URL,确保只允许特定格式的 URL 访问。
<?php
// 获取当前 URL 路径
$request_uri = explode('?', $_SERVER['REQUEST_URI'], 2);
$path = $request_uri[0];
// 定义合法的路径格式
$pattern = '/^\/article\/\d+\/cid\/\d+\.html$/';
// 检查路径是否匹配
if (preg_match($pattern, $path)) {
// 路径格式正确,处理请求
echo "合法路径";
} else {
// 路径格式不正确,返回 404 错误
http_response_code(404);
echo "页面未找到";
}
?>
.htaccess
配置 (适用于 Apache)使用 Apache 的 .htaccess
文件来设置 URL 重写规则,只允许符合特定格式的 URL 访问。
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/article/\d+/cid/\d+\.html$
RewriteRule ^ - [L,R=404]
parse_url
和 filter_var
通过 PHP 内置的 parse_url
和 filter_var
函数来解析和验证 URL。
<?php
$url = "http://www.xxx.com" . $_SERVER['REQUEST_URI'];
// 解析 URL
$parsed_url = parse_url($url);
$path = $parsed_url['path'];
// 检查路径是否符合格式
if (filter_var($path, FILTER_VALIDATE_REGEXP, [
"options" => ["regexp" => "/^\/article\/\d+\/cid\/\d+\.html$/"]
])) {
echo "合法路径";
} else {
http_response_code(404);
echo "页面未找到";
}
?>
使用现代 PHP 框架如 Laravel,其内置的路由功能可以方便地处理 URL 格式匹配。
Route::get('/article/{articleId}/cid/{cid}.html', function ($articleId, $cid) {
// 处理请求
return view('article', ['articleId' => $articleId, 'cid' => $cid]);
})->where(['articleId' => '[0-9]+', 'cid' => '[0-9]+']);
使用 Nginx 的配置文件来设置 URL 路由规则,确保 URL 格式匹配。
server {
listen 80;
server_name www.xxx.com;
location / {
if ($request_uri !~* "^/article/\d+/cid/\d+\.html$") {
return 404;
}
# 其他配置...
}
}
这些方法都可以确保只有符合特定格式的 URL 才能被正确处理。你可以选择一个最适合你应用场景的方法进行配置。
使用指南 - 疑难问题 - 数据缺失或无数据问题 - 网站禁止被iframe加载怎么办? 热力图是通过在iframe中加载用户设置的预览url的方式实现的,因此如果用户设置的预览页面禁止被iframe加载,那热力图固然是无法使用的。 Furthermore, X-Frame-Options must be sent as an HTTP header field and is explicitly
第一个表是医院记录,第二个表是业务人负责的医院,怎么在第一个表增一个“业务员”列,分别从第二个表对应上是哪个业务员?这怎么实现? https://www.chunshu.net/angpu/%E4%B8%B4%E6%97%B6%E4%BA%BA%E5%... 还有一个问题:我想把下面第一个表里的统计到第二个表里,但是就是申请时间统计,比如‘2024/3/1’里就填A在第一张表里所以是2024/3/
我有一个非常简单的测试应用程序,上面有一个webview组件。我正试图阻止链接在浏览器中打开,但“shouldoverrideurlloading”看起来对我不起作用。 有人能帮我看看哪里有错误吗?
问题: impl: @Service public class GraduateCollegeServiceImpl extends ServiceImpl<GraduateCollegeMapper, GraduateCollege> implements IGraduateCollegeService { controller: @Api(tags="各高校") @RestController
这是记录用户下载的表,想统计表内每个文章被下载了几次,也就是需要拿到一个文章ID,然后再求下这个ID出现的次数。
http://iapplus.com 进入页面点击article 然后刷新页面后就变成其他的页面了