很多人都想搭建自己的独立博客系统,但不知道如何操作。本次教程就满足下对建立网站不是很了解,又想搭建一个独立博客的朋友,跟我一起一步一步安装部署emlog系统来实现这个小理想。
EMLOG是every memory log的简称,即:点滴记忆,是国内使用php语言开发的一个轻量级开源博客系统,后台管理符合国人的思维习惯,部署也很方便。
官网下载地址:http://www.emlog.net/
按照官方安装说明,推荐使用Linux+Apache主机,原因是Apache对emlog的伪静态支持的更好一些。本文使用使用Nginx服务器来部署,Nginx的优点自行搜索,本文不做详细介绍。
文中的操作是在Linux Centos7系统上操作。
# yum install nginx
2. 安装完成后,启动nginx服务,
# systemctl start nginx
3. 在浏览器里访问http://x.x.x.x(x.x.x.x为你服务器的ip地址),查看nginx是否安装成功。端口默认是80。
nginx 默认页面
看到上图,表示成功安装nginx。
4. 安装PHP和PHP-FPM
# yum install epel-release
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum install php72w php72w-fpm php72w-gd php72w-mysql php72w-mbstring php72w-xml php72w-mcrypt php72w-imap php72w-odbc php72w-pear
# systemctl start php-fpm
5.配置nginx与php一起工作:
打开nginx的主配置文件,添加以下代码:
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
然后重启nginx服务:
# systemctl restart nginx
6.测试nginx与php是否正常:
# vi /usr/share/nginx/html/info.php
<?php
phpinfo();
?>;
php环境成功页面
.什么是emlog采集文章
EmLog作为一款灵活稳定且具备良好用户体验和高度扩展性的开源博客系统,其内置的文章采集功能利用自动化工具或插件,能有效地把其他平台的优质内容精准导入到个人博客中。此举不仅节约大量创作时间,还能为博客注入新元素,提升网站权威性和流量。
在实施EmLog文章采集过程中,须遵循道德规范和法律法规,严禁未经授权转载他人作品或侵犯其知识产权。应严格依照相关法律法规,尊重原创作者的劳动付出。
2.emlog采集文章的必备条件
为了成功采集到Emlog文章,我们需要使用高效率且实用的采集工具或者插件。市面上这类产品丰富多样,如“熊掌号”、“文章采集器”等Emlog专用采集插件都可以方便快捷地获取外部网站内容以及定制化编排和发布功能。
除了采掘工具外,针对目标网站的防爬虫策略亦须严谨考量。部分网站运用策略阻止爬虫程序接入,以调整访问速度及模式。因此,在使用emlog进行文章采集时,应充分了解目标站点的防爬虫措施,并依此采取相应措施。
3.emlog采集文章的操作步骤
实际进行emlog采集文章时,一般可以分为以下几个步骤:
首先:根据实际需求挑选并安装合适的数据采集设备。严格按照操作指南完成设备的安装和参数调整。
-步骤二:确立采集准则。在该插件中,针对拟采集的网址、关键词等元素进行预设,并设定相应的采集过程参数。
-第三阶段:深度检测与调试。正式采集工作实施前,必须确保系统经过充分的测试和调校,使所设采集规则精确无误并可有效检索所需信息。
-第四步:实行数据收集。按照既定标准触发采集任务,结束后核对成果,进行必要处置并发布。
4.emlog采集文章注意事项
在进行emlog采集文章时,需要注意以下几点:
恪守知识产权,严禁抄袭他作,注明原出处以示敬意。
-务必注意抓取频率和数量的限制。过度采集可能导致目标站点负荷过重,甚至引发恶意质疑。
-建立日常的信息更新和保护机制。定期检查并调适抓取参数,清除冗余数据,确保数据质量优良。
-遵守法规,严控内容采集,确保不传播违法有害观点。
5.emlog采集文章优化技巧
提高EMLOG文章搜集性能应采取如下改进措施:
-改进采集规程。借鉴目标网站特点,调整采集规则以提高协作效率与精确性。
-采用独特的文字检测机制,避免重复采集,为数据库提供严格的内容管理。
-精细化图像处理与优化,确保其有效链接并符合法规要求;适度压缩以提高网页加载速度。
-深化SEO策略,重视对抓取内容的元标签进行精细设定(如标题、关键词、描述等),从而提升搜索引擎排名。
6.emlog采集文章常见问题解决方法
针对实践过程中的问题,如内容提炼困难、字符编码混乱及格式韵律等,以下的策略或能有所帮助。
请确保网络连接正常,如有异常,将无法访问特定网址。
确认抓取规则的设定无误,确保其与目标网页结构相符。
请将插件升级至最新的版本;如无效,建议交换为其他插件。此类故障可能是因为旧插件或是插件间的冲突引发。
7.emlog采集文章未来发展趋势
伴随着互联网科技和智能水平日新月异的发展,EMLOG文章的采集方式正逐步实现智能化、个性化。在不久的将来,借助AI技术推动的智能捕捉工具将会如同春笋般蓬勃生长,能够更精确地发掘并呈现受众感兴趣的内容,继而实现自动化的发布与推广。
路由
字面上解释,路是线路,道路;由,缘由,指意,表示规则;所以意思就是按照什么规则,或者意义,被指派到什么地方去。
所以路由是指线路分发,在后端web中一般都是指访问url的映射规则,比如什么样的url访问,经过路由规则映射到什么模块,什么控制器,什么方法,或者是类,或者是闭包,或者是别的,总之它是起分发的作用。
伪静态
伪静态字面上的意思就是伪造,静态。
(补充:伪静态就是让动态的URL地址看起来是静态的地址,伪静态是最终的目的,而不是技术。实现伪静态有很多方式去实现,利用主机的URL重写可以实现,利用程序本身的路由配置也可以实现,比如tp5和wordpress中可以自由的配置URL规则。前者需要有管理主机的权限,而后者比较灵活。但是要隐藏入口需要pathinfo或url重写的支持)
web2.0的世界里面,很多页面都是动态的,比如很多 index.php/a/…… 或者 index.php?a=1&…… 这样的,这样的动态地址不怎么好看,对搜索引擎不友好,所需需要借助一些技术手段来将这些动态的url地址伪装成静态的url地址,这就是伪静态。
所以伪静态指的是利用一些技术将动态地址转换成静态地址并可照常访问的解决方案,并不是指某一种技术。
那么来看下实现伪静态需要用到哪些技术:
web主机rewrite模块(URL重写,rewrite翻译成中文为重写,但很多人也常称伪静态)
pathinfo (主机支持的一种技术,index.php/path,再利用url重写可以隐藏入口)
程序的路由(可以美化,缩短url,变得更人性化,更有语义)
补充:还有一个很重要的一点没提到的就是【加后缀】,这个不算是什么技术,所以没列到上面的技术列表中,加后缀可以在上面每一步都能完成,程序中就是控制url生成时加后缀就可以了。并且后缀有时候设计API时还很有用,必须后缀可以代表返回的数据格式(参考:REST设计风格)。
分析:
第一种方案优点是功能强大(利用重写模块规则支持正则匹配等特性),可以实现任意的url重写,但缺点是需要配置很多复杂的url重写规则(多多返利程序就是利用这方式做伪静态,如果开启伪静态,则程序会生成伪静态规则的url,并且需要主机同时手动配置相应的url重写规则),需要有主机管理的权限,如果是在主机上修改的配置则需要重启web服务器(支持.htaccess则不需要重启)。
这个需要web主机的支持,支持PATHINFO的主机可以支持 index.php/home/index/index 这样的url访问,这样web语言中就可以获得值(比如PHP程序可以得到 $_SERVER['PATH_INFO'] = '/home/index/index'
)。根据这个特性,利用URL重写,只需要一条简单的URL重写规则,将所有参数都重写到入口文件的后面,这样就能实现隐藏入口文件了,当然这只是隐藏入口文件,在thinkphp中如果主机不支持PATHINFO(比如低版本的nginx)那么使用兼容模式(?s=/m/c/a)也能模拟实现pathinfo从而实现隐藏入口文件index.php
可以说是程序里面的url重写(上面提到的rewrite是主机的URL重写),设计参考了主机的url重写,所以路由规则也和主机url重写规则差不多。优点是功能强大,规则配置灵活;缺点就是解析的性能问题(就这一个缺点,其它都是优点)。(WordPress自定义url其实就是用的自定义路由)
总结:
一般主机都能开启rewrite模块/功能支持URL重写,这很关键,这样实现隐藏入口文件了,这是第一步,再利用pathinfo(或者兼容模式),还有程序的路由,这样配合起来就能够实现简洁明了的URL地址了,也就是实现我们所说的伪静态。
参见:伪静态百科
原始的 index.php?m=home&c=index&a=index
实在是太难看了,所以即使不全伪静态,不用路由,也最好抛弃这种原始的地址,因为有些接口开发中已经不支持使用这类url地址了,所以务必使用 pathinfo
的形式:index.php/home/index/index
,在隐藏入口,再加个后缀 home/index/index.html
就完美了,如果是做API或者有特殊用途的话还可以带上特定的后缀,比如看云、github仓库克隆时代.git
后缀的仓库地址。
想要了解【URL/PATHINFO/路由】的更多信息可以继续阅读:URL模式之分析
其实如果你的入口是index.php,使用兼容模式也可以隐藏入口的,直接?s=/m/c/a,?m=home&c=index&a=index 因为大多主机默认配置的有默认访问文件/入口。
下面分析nginx的部分配置:
主配置:/usr/local/nginx/conf/nginx.conf
user www www; worker_processes auto; error_log /data/wwwlogs/error_nginx.log crit; pid /var/run/nginx.pid; worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; multi_accept on; } http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 1024m; sendfile on; tcp_nopush on; keepalive_timeout 120; server_tokens off; tcp_nodelay on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; #Gzip Compression gzip on; gzip_buffers 16 8k; gzip_comp_level 6; gzip_http_version 1.1; gzip_min_length 256; gzip_proxied any; gzip_vary on; gzip_types text/xml application/xml application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml text/javascript application/javascript application/x-javascript text/x-json application/json application/x-web-app-manifest+json text/css text/plain text/x-component font/opentype application/x-font-ttf application/vnd.ms-fontobject image/x-icon; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; #If you have a lot of static files to serve through Nginx then caching of the files' metadata (not the actual files' contents) can save some latency. open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on; ######################## default ############################ server { listen 80; server_name _; access_log /data/wwwlogs/access_nginx.log combined; root /data/wwwroot/default; index index.html index.htm index.php; location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } location ~ [^/]\.php(/|$) { #fastcgi_pass remote_php_ip:9000; fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ { expires 30d; access_log off; } location ~ .*\.(js|css)?$ { expires 7d; access_log off; } } ########################## vhost ############################# include vhost/*.conf; }
每一个虚拟主机在虚拟主机配置目录都有一个对应的配置文件
[root@iZuf6fvttmu9vkdbnencgpZ vhost]# lsdingtalk.uogo8.com.conf lipin.uogo8.com.conf tv.uogo8.com.confgj.uogo8.com.conf test.uogo8.com.conf www.uogo8.com.conf
虚拟主机配置文件:/usr/local/nginx/conf/vhost/www.uogo8.com.conf
server {listen 80;server_name www.uogo8.com uogo8.com;access_log /data/wwwlogs/www.uogo8.com_nginx.log combined;index index.html index.htm index.php;include /usr/local/nginx/conf/rewrite/www.uogo8.com.conf;root /data/wwwroot/www.uogo8.com;if ($host !=www.uogo8.com) { rewrite ^/(.*)$ $scheme://www.uogo8.com/$1 permanent; }location ~ \.php { #fastcgi_pass remote_php_ip:9000; fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; include fastcgi_params; set $real_script_name $fastcgi_script_name; if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") { set $real_script_name $1; #set $path_info $2; } fastcgi_param SCRIPT_FILENAME $document_root$real_script_name; fastcgi_param SCRIPT_NAME $real_script_name; #fastcgi_param PATH_INFO $path_info; }location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ { expires 30d; access_log off; }location ~ .*\.(js|css)?$ { expires 7d; access_log off; } }
伪静态单独放一个目录,需要时被虚拟主机配置文件引入,这样方便管理
[root@iZuf6fvttmu9vkdbnencgpZ vhost]# cd ../rewrite/ [root@iZuf6fvttmu9vkdbnencgpZ rewrite]# lsnone.conf thinkphp.conf www.uogo8.com.conf
伪静态是一种效果,准确的说这是主机的URL重写规则/配置文件。但一般大家也习惯性称之为伪静态配置、伪静态文件,开启伪静态,伪静态模块,伪静态功能了,其实伪静态只是最终实现的效果。
thinkphp程序的伪静态配置文件:/usr/local/nginx/conf/rewrite/thinkphp.conf
location / { if (!-e $request_filename) { # 不支持pathinfo,那就使用url重写,重写成兼容模式,来达到隐藏入口的效果 rewrite ^(.*)$ /index.php?s=$1 last; break; } }
thinkphp伪静态配置文件.htaccess(Apache环境)
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f # 直接利用url重写,重写成 pathinfo 模式 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule>
uogo8的伪静态配置文件:/usr/local/nginx/conf/rewrite/www.uogo8.com.conf
location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } }
####################################################################### # OneinStack for CentOS/RadHat 5+ Debian 6+ and Ubuntu 12+ # # For more information please visit https://oneinstack.com ######################################################################## Your domain: www.uogo8.com Virtualhost conf: /usr/local/nginx/conf/vhost/www.uogo8.com.conf Directory of: /data/wwwroot/www.uogo8.com Rewrite rule: /usr/local/nginx/conf/rewrite/thinkphp.conf
相关阅读:
nginx下支持PATH_INFO详解
nginx支持.htaccess文件实现伪静态的方法分享
php官方手册 隐藏 PHP
WordPress 伪静态规则(IIS/Apache/Nginx)
Wordpress固定链接伪静态的设置方法
WordPress 查看网站的所有伪静态 Rewrite 规则
>[info] WordPress 本身只需要一条服务器重写规则就能让固定链接正常功能,这条规则就是把所有不存在的文件请求指向 index.php,然后它再通过 PHP 匹配请求的网址,得出最终的请求结果,注入到主循环之中。
v8伪静态规则在哪,如何开启伪静态功能
>[info] 这个比WordPress的复杂一点,利用了重写,程序根据网站后台设置中是否开启伪静态,来决定生成什么样的URL,并没有用到pathinfo和路由。这样的缺点就是每次都要手动配置主机的伪静态规则,且规则多容易出错。
其他应当注意的问题
任何时候要考虑兼容性,并不是所有环境都支持PATH_INFO的,比如下面的代码就能体现出来这个思想:
$input->SetNotify_url(SITE_URL . '/index.php/Home/Payment/notifyUrl/pay_code/weixin');
这个代码在Apache上没有问题,但是在Nginx上面就出问题了,即使Nginx设置了这样的URL重写:
location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } }
也没用有,Nginx不支持PATH_INFO,并且也不满足上面的URL重写规则(如果文件不存在就映射到s参数上面),所以上面的代码可以说没有兼容性。
上面的代码只要改成
$input->SetNotify_url(SITE_URL . '/Home/Payment/notifyUrl/pay_code/weixin');
就好了,就不会有问题了(在不支持PATH_INFO的Nginx上面满足URL重写规则),这样代码在不同环境下面都能以期望的结果运行,就具有兼容性了。
扩展
附:
多多返利程序的Nginx的URL重写规则:nginx.txt
location / { rewrite /mall/list-(.*)-(\d+).html$ /index.php?mod=mall&act=list&cid=$1&page=$2 last; rewrite /mall/list-(.*).html$ /index.php?mod=mall&act=list&cid=$1 last; rewrite /mall/list.html$ /index.php?mod=mall&act=list last; rewrite /mall/view-(\d+)-(.*)-(\d+).html$ /index.php?mod=mall&act=view&id=$1&do=$2&page=$3 last; rewrite /mall/view-(\d+)-(.*).html$ /index.php?mod=mall&act=view&id=$1&do=$2 last; rewrite /mall/view-(\d+).html$ /index.php?mod=mall&act=view&id=$1 last; rewrite /mall/goods-(.*)-(\d+)-(\d+)-(\d+)-(\d+)-(.*)-(\d+).html$ /index.php?mod=mall&act=goods&merchantId=$1&order=$2&start_price=$3&end_price=$4&list=$5&q=$6&page=$7 last; rewrite /mall/goods-(.*).html$ /index.php?mod=mall&act=goods&q=$1 last; rewrite /mall/goods.html$ /index.php?mod=mall&act=goods last; rewrite /article/index.html$ /index.php?mod=article&act=index last; rewrite /article/$ /index.php?mod=article&act=index last; rewrite /article$ /index.php?mod=article&act=index last; rewrite /article/list-(.*)-(\d+).html$ /index.php?mod=article&act=list&cid=$1&page=$2 last; rewrite /article/list-(.*).html$ /index.php?mod=article&act=list&cid=$1 last; rewrite /article/list.html$ /index.php?mod=article&act=list last; rewrite /article/view-(\d+).html$ /index.php?mod=article&act=view&id=$1 last; rewrite /huodong/list-(\d+)-(\d+).html$ /index.php?mod=huodong&act=list&cid=$1&page=$2 last; rewrite /huodong/list-(\d+).html$ /index.php?mod=huodong&act=list&page=$1 last; rewrite /huodong/list.html$ /index.php?mod=huodong&act=list last; rewrite /huodong/view-(\d+).html$ /index.php?mod=huodong&act=view&id=$1 last; rewrite /huan/list-(\d+)-(\d+).html$ /index.php?mod=huan&act=list&cid=$1&page=$2 last; rewrite /huan/list-(\d+).html$ /index.php?mod=huan&act=list&cid=$1 last; rewrite /huan/list-(.*).html$ /index.php?mod=huan&act=list&cid=$1 last; rewrite /huan/list.html$ /index.php?mod=huan&act=list last; rewrite /huan/view-(\d+).html$ /index.php?mod=huan&act=view&id=$1 last; rewrite /tao/index.html$ /index.php?mod=tao&act=index last; rewrite /tao/$ /index.php?mod=tao&act=index last; rewrite /tao$ /index.php?mod=tao&act=index last; rewrite /tao/list-(.*)-(.*)-(\d+)-(\d+).html$ /index.php?mod=tao&act=list&cid=$1&q=$2&list=$3&page=$4 last; rewrite /tao/list-(.*)-(\d+).html$ /index.php?mod=tao&act=list&cid=$1&page=$2 last; rewrite /tao/list-0-(.*).html$ /index.php?mod=tao&act=list&cid=0&q=$1 last; rewrite /tao/list-(.*).html$ /index.php?mod=tao&act=list&cid=$1 last; rewrite /tao/list.html$ /index.php?mod=tao&act=list last; rewrite /tao/view-(.*)-(.*)-(.*).html$ /index.php?mod=tao&act=view&iid=$1&promotion_price=$2&promotion_endtime=$3 last; rewrite /tao/view-(.*).html$ /index.php?mod=tao&act=view&iid=$1 last; rewrite /tao/shop-(.*)-(\d+).html$ /index.php?mod=tao&act=shop&nick=$1&list=$2 last; rewrite /tao/shop-(.*).html$ /index.php?mod=tao&act=shop&nick=$1 last; rewrite /tao/zhe-(.*)-(\d+)-(\d+).html$ /index.php?mod=tao&act=zhe&q=$1&cid=$2&page=$3 last; rewrite /tao/zhe-(.*).html$ /index.php?mod=tao&act=zhe&q=$1 last; rewrite /tao/zhe.html$ /index.php?mod=tao&act=zhe last; rewrite /shop/list-(\d+)-(\d+)-(\d+)-(\d+)-(.*)-(\d+).html$ /index.php?mod=shop&act=list&cid=$1&start_level=$2&end_level=$3&type=$4&nick=$5&page=$6 last; rewrite /shop/list-(.*)-(\d+).html$ /index.php?mod=shop&act=list&cid=$1&page=$2 last; rewrite /shop/list-(.*).html$ /index.php?mod=shop&act=list&cid=$1 last; rewrite /shop/list.html$ /index.php?mod=shop&act=list last; rewrite /baobei/list-0-(.*)-(\d+).html$ /index.php?mod=baobei&act=list&cid=0&q=$1&page=$2 last; rewrite /baobei/list-0-(.*).html$ /index.php?mod=baobei&act=list&cid=0&q=$1 last; rewrite /baobei/list-(.*)-(\d+)-(\d+).html$ /index.php?mod=baobei&act=list&sort=$1&cid=$2&page=$3 last; rewrite /baobei/list-(.*)-(\d+).html$ /index.php?mod=baobei&act=list&cid=$1&page=$2 last; rewrite /baobei/list-(.*).html$ /index.php?mod=baobei&act=list&cid=$1 last; rewrite /baobei/list.html$ /index.php?mod=baobei&act=list last; rewrite /baobei/user-(\d+)-(\d+)-(\d+).html$ /index.php?mod=baobei&act=user&uid=$1&xs=$2&page=$3 last; rewrite /baobei/user-(\d+)-(\d+).html$ /index.php?mod=baobei&act=user&uid=$1&xs=$2 last; rewrite /baobei/user-(\d+).html$ /index.php?mod=baobei&act=user&uid=$1 last; rewrite /baobei/view-(\d+).html$ /index.php?mod=baobei&act=view&id=$1 last; rewrite /tuan/list-(\d+)-(\d+)-(\d+)-(.*)-(\d+).html$ /index.php?mod=tuan&act=list&cid=$1&mall_id=$2&city_id=$3&sort=$4&page=$5 last; rewrite /tuan/list-(\d+)-(\d+)-(.*).html$ /index.php?mod=tuan&act=list&cid=$1&city_id=$2&sort=$3 last; rewrite /tuan/list-(\d+)-(\d+).html$ /index.php?mod=tuan&act=list&cid=$1&page=$2 last; rewrite /tuan/list-(.*)-(\d+).html$ /index.php?mod=tuan&act=list&q=$1&page=$2 last; rewrite /tuan/list-(\d+).html$ /index.php?mod=tuan&act=list&cid=$1 last; rewrite /tuan/list-(.*).html$ /index.php?mod=tuan&act=list&q=$1 last; rewrite /tuan/list.html$ /index.php?mod=tuan&act=list last; rewrite /tuan/view-(\d+).html$ /index.php?mod=tuan&act=view&id=$1 last; rewrite /help/index-(\d+).html$ /index.php?mod=help&act=index&cid=$1 last; rewrite /help/index.html$ /index.php?mod=help&act=index last; rewrite /help/$ /index.php?mod=help&act=index last; rewrite /help$ /index.php?mod=help&act=index last; rewrite /about/index-(\d+).html$ /index.php?mod=about&act=index&id=$1 last; rewrite /about/index.html$ /index.php?mod=about&act=index last; rewrite /about/$ /index.php?mod=about&act=index last; rewrite /about$ /index.php?mod=about&act=index last; rewrite /paipai/index.html$ /index.php?mod=paipai&act=index last; rewrite /paipai/$ /index.php?mod=paipai&act=index last; rewrite /paipai$ /index.php?mod=paipai&act=index last; rewrite /paipai/list-(\d+)-(.*)-(\d+)-(.*)-(\d+)-(\d+)-(\d+)-(\d+).html$ /index.php?mod=paipai&act=list&cid=$1&q=$2&sort=$3&property=$4&begPrice=$5&endPrice=$6&list=$7&page=$8 last; rewrite /paipai/list-(.*).html$ /index.php?mod=paipai&act=list&q=$1 last; rewrite /paipai/list.html$ /index.php?mod=paipai&act=list last; rewrite /tbimg/(.*).jpg$ /comm/showpic.php?pic=$1 last; rewrite /sitemap/index.html$ /index.php?mod=sitemap&act=index last; rewrite /index.html$ /index.php last; }
ThinkPHP5路由全程图解 · 看云
*请认真填写需求信息,我们会在24小时内与您取得联系。