Nginx伪静态 修改url 禁止原url的访问
作者&投稿:鄂定 (若有异议请与网页底部的电邮联系)
rewrite ^/simple/\?t(\d+)\.html$ /archiver/tid-$1.html permanent;
试试看
会拦截的,只要是resource开头的文件夹名,都会被拦截,并且抛出500异常。
默认URL_MODEL为0的时候是没有路由判断的,下面是我修改U函数的截图和代码。图中标识哪些地方是我增加的。整个U函数的完整代码就不贴出来了,只贴出我增加的部分,也就是
if(C('URL_MODEL') == 0){这个区间里面的代码做了修改}else{...}
if(C('DIY_ROUTE')){
//重新获取路由规则里面里面的键
$key = $module.'/'.$var[$varController].'/'.$var[$varAction];
static $router_ruler = array();
if(empty($router_ruler)){
$router_ruler = include(CONF_PATH.'route.php');
}
$url = '/'.route($router_ruler,$key,$vars,$suffix);
}else{
$url = __APP__.'?'.C('VAR_MODULE')."={$module}&".http_build_query(array_reverse($var));
if($urlCase){
$url = strtolower($url);
}
if(!empty($vars)) {
$vars = http_build_query($vars);
$url .= '&'.$vars;
}
}
OneThink的URL伪静态优化:[2]URL_MODEL为0
上面的代码中加了一个配置参数就是DIY_ROUTE
ThinkPHP的配置文件在Application\Common\Conf\config.php的末尾增加一个元素
'DIY_ROUTE' => true,
上面还导入一个路由文件route.php,该文件放在\Application\Common\Conf\route.php
路由演示代码如下:
return array(
//一级路由
'home/index/about'=>'about',
//二级路由
'home/article/detail' =>array(
1=>'[id]',
2=>'[id]-[p]'
),
//三级路由
'home/article/category'=>array(
'category'=>array(
'1'=>array(
1=>'note',
2=>'note-[p]',
),
'2'=>array(
1=>'news',
2=>'news-[p]',
),
'3'=>array(
1=>'blog',
2=>'blog-[p]',
),
)
)
);
OneThink的URL伪静态优化:[2]URL_MODEL为0
OneThink的URL伪静态优化:[2]URL_MODEL为0
然后增加了一些函数来配合刚刚修改的U函数
OneThink的URL伪静态优化:[2]URL_MODEL为0
首先是路由函数
function route($router_ruler,$url,$params,$suffix){
//路由规则里全写成小写吧
$router_ruler = array_change_key_case($router_ruler);
$router_key = strtolower(trim(trim($url),'/'));
if(isset($router_ruler[$router_key])){
//一级路由
$real_url = $router_ruler[$router_key];
//由于规定参数格式必须是数组,所以这里只存在是数组和不是数组(为空)的情况
if(is_array($real_url)){
//看其是不是索引数组
if(array_product(array_map('is_numeric', array_keys($real_url)))==1){
//二级路由
if(is_array($params)){
$real_url = routeMatch($real_url[count($params)],$params);
}
}else{
//三级路由
foreach($params as $k =>$v){
if(array_key_exists($k,$real_url)){
$routeReg = $real_url[$k][$v][count($params)];
unset($params[$k]);
$real_url = routeMatch($routeReg,$params);
}
}
}
}
if($suffix) {
$suffix = $suffix===true?C('URL_HTML_SUFFIX'):$suffix;
if($pos = strpos($suffix, '|')){
$suffix = substr($suffix, 0, $pos);
}
if($suffix && '/' != substr($url,-1)){
$real_url .= '.'.ltrim($suffix,'.');
}
}
}else{
$real_url = urlBuild($url,$params);
}
return $real_url;
}
雀终重感: 默认URL_MODEL为0的时候是没有路由判断的,下面是我修改U函数的截图和代码.图中标识哪些地方是我增加的.整个U函数的完整代码就不贴出来了,只贴出我增加的部分,也就是 if(C('URL_MODEL') == 0){这个区间里面的代码做了修改}...
秀洲区15681855429: 怎么利用nginx进行url重写实现伪静态 - ?
雀终重感: Nginx的Rewrite规则和Apache的Rewite规则差别不是很大,几乎可以直接使用.比如在Apache中这样写规则 rewrite ^/([0-9]{5}).html$ /viewthread而在Nginx中写成这样写是无法启动的,解决的办法是加上两个双引号:rewrite "^/([0-9]{5}).html$" ...
秀洲区15681855429: Nginx伪静态规则怎么设置 - ?
雀终重感: 1、输入以下命令 cd /alidata/server/nginx/conf/rewrite再输入ll 看看是不是像下面截图的一样.2、这些就是伪静态规则文件.我们打开phpwind.conf看看.已经在rewrtie目录下配置了常见程序的伪静态规则.可以直接调用.3、如果没有就按照程...
秀洲区15681855429: nginx rewrite 刷新页面,页面里的url进行更改.. - ?
雀终重感: 在rewrite规则的最后加上redirect或者permanent,浏览器就能够临时或者永久的显示跳转后的URL地址了.
秀洲区15681855429: nginx 的伪静态的写法 - ?
雀终重感: url是什么都是可以的,关键的是在nginx的配置中,把原url rewrite成为真正的url. 比如有一个location是这样配置的: location / {root xxxx;index index.php;fastcgi_pass xxx;include fastcgi.conf; //跳转规则rewrite "^/t/index.php/([^\?]+)/([^\?]...
秀洲区15681855429: 关于nginx的rewrite(伪静态)规则修改 - ?
雀终重感: 你加一个目录的意思,应该加了一个另外的战点吧.这样的话你的伪静态是不能通用的,不过nginx配置里面是支持多个站点配置的,配置文件里面不同的location,可以指向不同的站点,location里面可以单独添加伪静态规则.具体nginx配置方法,百度上很多.
秀洲区15681855429: Nginx伪静态php设置方法 - ?
雀终重感: 修改/etc/nginx/nginx.conf,tae的话可能在conf.d里边的virtual.conf,在server里边添加伪静态规则 location / {index index.php index.html index.htm;rewrite ^(.*)/item/([0-9]+)\.html $1/item.php?id=$2 last;}大概是这样,规则要自己测试
秀洲区15681855429: 服务器不支持伪静态怎么才能让.net服务器支持伪静态 - ?
雀终重感: 如果是 IIS ,需要设置 rewrite Isapi 筛选器才可以.如果是 apache 等,可以在配置文件里配置 rewrite 规则.你下载了别人的源码,一般情况下,人家会把 REWRITE 规则和组件一起给你的.你在 iis 的 Isapi 筛选器 里添加相应的 DLL 为过滤器就行了. 我可以帮助你,你先设置我最佳答案后,我百度Hii教你.你的串号我已经记下,采纳后我会帮你制作
秀洲区15681855429: 修改为Nginx下的伪静态规则 - ?
雀终重感: if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?p=$1 last; }
秀洲区15681855429: thinkphp 伪静态 nginx 规则怎么设置 - ?
雀终重感: 关于nginx的伪静态设置(案例) server { listen 80; server_name localhost; index index.html index.htm index.php; root /alidata/www/; location / { if (!-e $request_filename){ rewrite ^/(.*)$ /index.php?s=/$1 last; } } location ~ .*\.(php|php5)?$ { #fastcgi...