-
Yii学习(9)----糊里糊涂URL重定义
2013-12-18 17:30:17'<controller:\w+>/<action:\w+>_<id:\d+>'=>'<controller>/<action>',//为视频分类定制的URL,文章分类定制URL '<controller:\w+>/<action:\w+>_<id:\d+>_<page:\d+>'=>'<controller>/<action>',//为视频分类定制...去除index.php?
在apache服务器下面:
开启mod_rewrite模块 =>这个百度一下
在项目入口文件(index.php)同级下加入.htaccess文件,写入:
<IfModule rewrite_module> Options +FollowSymLinks IndexIgnore */* RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php </IfModule>
在主配置文件(config/main.php)的components-->urlManager中加入:
'showScriptName'=>false,
这时,index.php就可以去除了。
在rules可以自定义自己的url格式:这里将urlrules.php引入到rules=>include(urlrules.php),中
return array( '<controller:\w+>/<id:\d+>'=>'<controller>/view', '<controller:\w+>/v/<id:\d+>'=>'<controller>/view',//video/v和match/v定制 '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', '<controller:\w+>/<action:\w+>_<id:\d+>'=>'<controller>/<action>',//为视频分类定制的URL,文章分类定制URL '<controller:\w+>/<action:\w+>_<id:\d+>_<page:\d+>'=>'<controller>/<action>',//为视频分类定制的URL '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 'video//'=>'video/index/', '/city-<areaname_e:\w+>/'=>'diaodian/area/',//定制 '/city-<areaname_e:\w+>/diaodian/'=>'area/index/',//定制 );
-
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020-10-15 11:18:14主要介绍了thinkphp框架实现路由重定义简化url访问地址的方法,结合实例形式分析了thinkphp路由重定义及url地址访问相关操作技巧与注意事项,需要的朋友可以参考下 -
thinkphp路由重定义简化url访问地址
2017-02-16 09:31:57如果按照正常访问的话,则需要输入一长串的url地址,这样会显得十分冗长,我可以可以通过对路由规则的重新定义简化url访问地址。 namespace app\index\controller; class Index{ public function index(){ return...如果按照正常访问的话,则需要输入一长串的url地址,这样会显得十分冗长,我可以可以通过对路由规则的重新定义简化url访问地址。
本来的访问路径应该是:<?php namespace app\index\controller; class Index{ public function index(){ return '我是index'; } public function hello($name='World'){ return 'Hello'.$name.'!'; } } ?
localhost/tp/index.php/index/index/hello
我们在路由定义文件(
application/route.php
)里面添加一些路由规则,如下:
这是以hello开头的并且带参数的访问都会路由到return [ // 添加路由规则 路由到 index控制器的hello操作方法' hello/:name' => 'index/index/hello', ];
index
控制器的hello
操作方法。此时路径可以写为:
此时输出结果为:HelloThinkphp!localhost/tp/hello/Thinkphp
改变路由规则后若使用原来的路径访问方法后,则会出现错误。
但此时有一个问题是,如果访问地址为:
话,会抛出 模板不存在的错误,因为在访问时,没有传参,而在定义路由规则时,则带有参数。localhost/tp/hello
解决办法是在修改路由规则为:
使用return [ // 添加路由规则 路由到 index控制器的hello操作方法' hello/[:name'] => 'index/index/hello', ];
[]
把路由规则中的变量包起来,就表示该变量为可选,接下来就可以正常访问了。当
除了路由配置文件中定义之外,还可以采用动态定义路由规则的方式定义,例如在路由配置文件(name
参数没有传入值的时候,hello
方法的name
参数有默认值World
,所以输出的内容为Hello,World!
application/route.php
)的开头直接添加下面的方法:use think\Route; Route::rule('hello/:name', 'index/hello');
完成的效果和使用配置方式定义是一样的。
无论是配置方式还是通过Route类的方法定义路由,都统一放到路由配置文件
application/route.php
文件中 -
python url_Python--URL操作
2020-12-02 01:25:08URL中的元素:通常意义上的URL重定义URL:通常意思上的URL的请求参数重定义URL里面的请求参数解析URL—urlparse我使用的Python3.6,使用的是自带的库urllib,并使用里面的子模块parse。from urllib.parse import ...URL中的元素:通常意义上的URL
重定义URL:
通常意思上的URL的请求参数
重定义URL里面的请求参数
解析URL—urlparse
我使用的Python3.6,使用的是自带的库urllib,并使用里面的子模块parse。from urllib.parse import urlparse
url = "https://127.0.0.1/oauth/authorize" \
"?redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D" \
"&client_id=o92cvMIa5FzGbq4LpHJoaf2j" \
"&response_type=code" \
"&state=0.1354064097905866"
dest_str = urlparse(url)
print(dest_str)
打印出来:ParseResult(scheme='https', netloc='127.0.0.1', path='/oauth/authorize', params='', query='redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D&client_id=o92cvMIa5FzGbq4LpHJoaf2j&response_type=code&state=0.1354064097905866', fragment='')
它会解析为:scheme:https
netloc:127.0.0.1
path:/oauth/authorize
params:
query:redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D&client_id=o92cvMIa5FzGbq4LpHJoaf2j&response_type=code&state=0.1354064097905866
fragment:
解析query—使用parse_qsfrom urllib.parse import urlparse, parse_qs
url = "https://127.0.0.1/oauth/authorize" \
"?redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D" \
"&client_id=o92cvMIa5FzGbq4LpHJoaf2j" \
"&response_type=code" \
"&state=0.1354064097905866"
dest_str = urlparse(url)
print(parse_qs(dest_str.query))
打印出来:{'redirect_uri': ['https://open.bot.tmall.com/oauth/callback?skillId=18936&token=NzkzODU4MzM3QUZFSElORkRWUQ=='], 'client_id': ['o92cvMIa5FzGbq4LpHJoaf2j'], 'response_type': ['code'], 'state': ['0.1354064097905866']}
解析redirect_uri—使用urlparsefrom urllib.parse import urlparse, parse_qs
url = "https://127.0.0.1/oauth/authorize" \
"?redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D" \
"&client_id=o92cvMIa5FzGbq4LpHJoaf2j" \
"&response_type=code" \
"&state=0.1354064097905866"
dest_1 = urlparse(url)
dest_2 = parse_qs(dst_1.query)
dest_3 = urlparse(dest_2)
print(parse_qs(dest_str.query))
最终的# encoding: utf-8
from urllib.parse import urlparse, parse_qs
import html
url = "https://127.0.0.1/oauth/authorize" \
"?redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D" \
"&client_id=o92cvMIa5FzGbq4LpHJoaf2j" \
"&response_type=code" \
"&state=0.1354064097905866"
def main():
dest_1 = urlparse(url)
#print(dest_1) # ParseResult(scheme='https', netloc='127.0.0.1', path='/oauth/authorize', params='', query='redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D18936%26token%3DNzkzODU4MzM3QUZFSElORkRWUQ%3D%3D&client_id=o92cvMIa5FzGbq4LpHJoaf2j&response_type=code&state=0.1354064097905866', fragment='')
dest_2 = parse_qs(dest_1.query)
#print(dest_2) # {'redirect_uri': ['https://open.bot.tmall.com/oauth/callback?skillId=18936&token=NzkzODU4MzM3QUZFSElORkRWUQ=='], 'client_id': ['o92cvMIa5FzGbq4LpHJoaf2j'], 'response_type': ['code'], 'state': ['0.1354064097905866']}
dest_3 = dest_2['redirect_uri']
#print(dest_3) # ['https://open.bot.tmall.com/oauth/callback?skillId=18936&token=NzkzODU4MzM3QUZFSElORkRWUQ==']
print(str(dest_3)[2:-2]) # https://open.bot.tmall.com/oauth/callback?skillId=18936&token=NzkzODU4MzM3QUZFSElORkRWUQ==
dest_4 = urlparse(str(dest_3)[2:-2])
print(dest_4) # ParseResult(scheme='https', netloc='open.bot.tmall.com', path='/oauth/callback', params='', query='skillId=18936&token=NzkzODU4MzM3QUZFSElORkRWUQ==', fragment='')
dest_5 = parse_qs(dest_4.query)
print(dest_5) # {'skillId': ['18936'], 'token': ['NzkzODU4MzM3QUZFSElORkRWUQ==']}
dest_6 = dest_5['token'] # ['NzkzODU4MzM3QUZFSElORkRWUQ==']
print(str(dest_6)[2:-2]) # NzkzODU4MzM3QUZFSElORkRWUQ==
if __name__ == '__main__':
main()
-
rowid方式在线重定义
2014-09-28 16:31:031,建分区表 create table WEB_AD ( DATA_ID INTEGER, USER_FLAG VARCHAR2(100), AID VARCHAR2(4000), URL VARCHAR2(4000), REFERRER_URL VARCHAR21,建分区表
create table WEB_AD
(
DATA_ID INTEGER,
USER_FLAG VARCHAR2(100),
AID VARCHAR2(4000),
URL VARCHAR2(4000),
REFERRER_URL VARCHAR2(4000),
IP_EX VARCHAR2(4000),
WEBSITE_ID VARCHAR2(4000),
NDS VARCHAR2(1000),
DESCRIPTION VARCHAR2(4000),
ACTION INTEGER,
ACTION_TIME DATE,
WINDOWS VARCHAR2(512),
SYS_DATE DATE default sysdate,
DATA_TYPE INTEGER,
USER_AGENT VARCHAR2(512),
SCREEN_RESOLUTION VARCHAR2(100),
PID VARCHAR2(200),
SID VARCHAR2(64),
CID VARCHAR2(200),
RESERVE2 VARCHAR2(200),
RESERVE3 VARCHAR2(200),
RESERVE4 VARCHAR2(200),
RESERVE5 VARCHAR2(200)
)
partition by range(sys_date) INTERVAL(NUMTODSINTERVAL(1,'DAY'))
(
partition p_2014_04_01 values less than (to_date('2014-04-01', 'yyyy-mm-dd'))
)
tablespace WEB_AD_TBS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 80K
next 1M
minextents 1
maxextents unlimited);
2,判断
exec dbms_redefinition.can_redef_table(gather,'web_ad_data',DBMS_REDEFINITION.CONS_USE_rowid);
3,开始exec dbms_redefinition.start_redef_table('gather,'web_ad_data', 'web_ad','DATA_ID DATA_ID,USER_FLAG USER_FLAG,AID AID,URL URL,REFERRER_URL REFERRER_URL,IP_EX IP_EX,WEBSITE_ID WEBSITE_ID,NDS NDS,DESCRIPTION DESCRIPTION,ACTION ACTION,ACTION_TIME ACTION_TIME,WINDOWS WINDOWS,SYS_DATE SYS_DATE,DATA_TYPE DATA_TYPE,USER_AGENT,USER_AGENT,SCREEN_RESOLUTION SCREEN_RESOLUTION,PID PID,SID SID,CID CID,RESERVE2 RESERVE2,RESERVE3 RESERVE3,RESERVE4 RESERVE4,RESERVE5 RESERVE5’,2);
4,EXEC DBMS_REDEFINITION.FINISH_REDEF_TABLE(gather,'web_ad_data', 'web_ad');
5,select * from web_ad
6,drop table web_ad7,rename
-
用VUE,OSS文件(名字+时间戳)下载的时候怎么重定义文件名
2021-01-28 15:32:35用VUE,OSS文件(名字+时间戳)下载的时候怎么重定义文件名 解决方案: downLoadFile (url, name) { // 下载文件 download(url, name) // OSS可下载的文件url,你想要改的名字 function getBlob (url, cb) { // ... -
mysql 重定义分隔符_hive自定义分隔符和处理Apache日志
2021-02-07 22:07:23自定义分隔符1.日志格式2010-05-31 10:50:17|61.132.4.82|...创建自定义分隔符的数据表CREATE TABLE click_test ( time string, ip string, url string) ROW FORMAT DELIMITED FIELDS TE... -
重定义extjs中button被点击后的样式
2012-06-27 11:22:521. var btn = new Ext.Button({text:'ddd'}); btn.on('',function(b){ b.addClass('newCSS'); }); ...background-image: url(../images/toolbarIcon/edit.png) !important; } /*发布* -
IIS的ISAPI服务器扩展URL REWRITE(URL重写)简介
2006-11-23 11:59:00URL REWRITE,我的翻译是URL重写,或者URL重定义。在asp+iis的网站开发模式中,可以实现如将http://xxxxxx.cn/news.asp?id=220 变成http://xxxxxx.cn/220.html 的形式。例如某条新闻的实际网址是... -
urlurl
2015-06-24 20:07:00伤心总是难免的,何苦一往情深,总之爱情难舍难分,何必在意那一点点温存,早知道伤心总是难免...#pragma mark - 重定义网址 #define BASE_URL_1 @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/A -
使用IHttpModule实现简单的页面重映射Url
2011-07-03 12:36:00原理:HttpModule模块在任何请求发生时都会执行,所有可以在该类中执行Url的重映射跳转 第一步:定义IHttpModule publicclassUrlRemapper:IHttpModule { publicvoidInit(HttpApplicationcontext) { context.... -
在IIS中使用URL重写功能
2007-06-22 13:45:00在IIS中使用URL重写功能from:http://www.zuoyefeng.com/show.aspx?id=79&cid=70by clin003 at 20070622 from:http://blog.csdn.net/clin003/ 或 http://blog.clin003.com/URL REWRITE,URL重写,或者URL重定义。... -
UrlRewrite 带来些比较实质的东西
2007-04-23 16:46:00cid=70URL REWRITE,我的翻译是URL重写,或者URL重定义。在asp+iis的网站开发模式中,可以实现如将http://xxxxxx.cn/news.asp?id=220 变成http://xxxxxx.cn/220.html 的形式。例如某条新闻的实际网址是http:... -
继续UrlRewrite,今天带来些比较实质的东西
2006-12-11 13:18:00cid=70URL REWRITE,我的翻译是URL重写,或者URL重定义。在asp+iis的网站开发模式中,可以实现如将http://xxxxxx.cn/news.asp?id=220 变成http://xxxxxx.cn/220.html 的形式。例如某条新闻的实际网址是http:... -
快速URL排重的方法(二)
2007-07-20 11:02:00常量定义:SPACE指你要分配多大的内存空间,我这里是为5000万数据的每一条分配4字节 constintSPACE=50000000*4;constintMAXNUM=SPACE*8;#defineLINE_MAX2048intbits[]={0x1,0x2,0x4,0x8,16,32,6... -
url_for()
2017-10-07 15:44:39有多个路由的程序需要连接不同的网页链接,例如导航条模板中构建正确的动态url较为困难,如果重定义路由,模板中的链接失效url_for()函数:使用url映射中保存的信息生成url用法:用视图函数名作为参数,返回对应的... -
flask中的url_for的使用
2019-10-06 23:39:56模板中构建正确的动态url较为困难,如果重定义路由,模板中的链接失效 url_for()函数: 使用url映射中保存的信息生成url 用法: 用视图函数名作为参数,返回对应的url 例如url_for(‘index’)得到的结果是”/... -
css的定义及运行规则
2019-10-03 00:48:17CSS的类型 (1) 自定义CSS .如果应用到html控件上,则只需要加上 class 属性 EX: .bg{background-image:url(bg.gif);} <body class="bg"> (2) 重定义标签的CSS ... -
SpringMvc如何将Url 映射到 RequestMapping (一)
2019-10-03 07:09:46SpringMvc Url 匹配规则详解 ...今天重 MVC 的Url匹配规则开始进行Spring源码的阅读。 一、Springmvc url 匹配规则 RequestMapping中路径的定义 1: /abc 指定具体的定义值 2:/{type} 指定参数 即... -
使用Mysql对URL进行索引
2015-01-29 14:44:47一个是自己做一个索引文件,定义一个bit数组,每一位代表对应的URL是否被抓取过(0或1)。对URL进行Hash或者crc到bit数组的指定位。虽然轻便,但是要自己维护,难免不会出bug。 一个是用Lucene或者Solr,虽然简单,... -
c# websocket 心跳重连_websocket重连机制
2021-01-05 01:56:07在弱网环境或者网络暂时断连的情况下,我们需要一套稳定的重...思路在实例化websocket后,我们会定义好各个回调事件需要执行的函数var ws = new WebSocket(url);ws.onclose = function () { //连接关闭};ws.onerror ... -
django学习框架之3:URL路由反转传递参数,指定默认参数
2020-12-22 12:28:30可以用于在重定向前,用作将指定的路由进行反转和拼接,拼接时使用的参数通过kwargs传递 例子: cms.views中定义index函数,进行相关的反转 def index(request): name = request.GET.get('name.