动态 版块 发帖 消息 我的
Loading...
HuPei.net
商•龙虎纹青铜尊及其虎食人纹局部,战国•玉螭虎食人佩!
子版块
hupeinet
1374
 领导要参加局里的会议并用PowerPoint汇报发言,由我负责制作幻灯片材料。因为疏忽大意,在用Microsoft PowerPoint 2007 Beta 2编辑文档时,一时忘记将文件保存为PowerPoint 97-2003文档(*.ppt)格式,而是直接保存为pptx文档。就因为多出了这么条尾巴(x),弄得局里的其它电脑(并未安装Microsoft Office 2007 Beta 2)均无法识别这种文档。  不过还好,最后一刻找到了微软官方的Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats,可以让低版本的Office 2003打开Office 2007文档,总算解了燃眉之急。如果你也遭遇过类似情况,按照下面介绍的简单方法就能让Office 2003轻轻松松地看透Office 2007的“心”。  先下载微软的补丁,然后运行O2007Cnv.exe,根据提示完成安装并重启。  就像网站介绍的一样,安装该兼容补丁后,Office 2003就可以识别出docx、docm格式的Word 2007文档(图1),pptx、pptm、potx、potm、ppsx、ppsm格式的PowerPoint 2007文档,xlsb、xlsx、xlsm、xltx、xltm格式的Excel 2007文档(系统中所显示的新旧格式文档图标存在差异,图2)。自然也可以对上述格式的文档进行打开、保存或新建等编辑操作。  如果有一天你不用这个补丁了,可以打开“控制面板”中的“添加/删除程序”,找到列表中的“Compatibility Pack for the 2007 Office system (Beta) ,点击“删除”按钮按照提示完成删除操作(图3)。
 0    0  879天前
hupei
1268
一. 简单实例介绍一般来说,apache配置好http和https后,如果想要做http强转到https,需要设置url重定向规则,大致需要下面几个步骤即可完成配置:1)在httpd.conf文件里使下面模块生效 [root@back ~]# cat /usr/local/apache/conf/httpd.conf ..... LoadModule ssl_module modules/mod_ssl.so #打开https功能模块 ..... LoadModule rewrite_module modules/mod_rewrite.so #打开重写跳转功能模块 2)httpd.conf配置文件或者是在httpd-vhost.conf文件里修改 [root@back ~]# cat /usr/local/apache/conf/httpd.conf ....... DocumentRoot "/data/vhosts" <Directory "/data/vhosts"> Options FollowSymLinks MultiViews Includes AllowOverride All #AllowOverride None一定要修改为AllowOverride All!! Require all granted </Directory> 3)在网站根目录下面添加该文件".htaccess"目录访问控制文件,并添加如下内容: RewriteEngine on RewriteBase / RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 含义是这样的:为了让用户访问传统的http://转到https://上来,用了一下rewrite规则: 第一句:启动rewrite引擎 第三句:rewrite的条件是访问的服务器端口不是443端口 第四句:这是正则表达式,^是开头,$是结束,/?表示有没有/都可以(0或1个),(.*)是任何数量的任意字符 整句的意思是讲:启动rewrite模块,将所有访问非443端口的域名请求,url地址内容不变,将http://变成https://。 上面的配置实现了将所有域名的http跳转为https,如果只是针对某一个url的https跳转,则配置情况会有所不同,如下:实现单个url类型的https跳转需求: 访问http://bo.kevin.com/beijing/...... 强制跳转到https://bo.kevin.com/beijing/...... 配置如下: [root@docker-test2 web]# cat .htaccess <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{SERVER_PORT} 80 RewriteCond %{REQUEST_URI} /beijing RewriteRule ^(.*$) https://bobo.kevin.com/beijing/ [R,L] </IfModule>===========Apache下http跳转至https的案例说明=============1) 示例一RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{REQUEST_URI} !^/tz.php RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]%{SERVER_PORT}     说明访问端口%{REQUEST_URI}      比如如果url是 http://localhost/tz.php,则是指 /tz.php%{SERVER_NAME}    比如如果url是 http://localhost/tz.php,则是指 localhost以上规则的意思是,如果访问的url的端口不是443,且访问页面不是tz.php,则应用RewriteRule这条规则。这样便实现了:访问了 http://localhost/index.php 或者 http://localhost/admin/index.php 等页面的时候会自动跳转到 https://localhost/index.php 或者 https://localhost/admin/index.php,但是访问 http://localhost/tz.php 的时候就不会做任何跳转,也就是说 http://localhost/tz.php 和 https://localhost/tz.php 两个地址都可以访问。2) 示例二.htaccess 在每一层独立服务根目录下都存在,例如全部网站根目录为 /var/www/html/.htaccess 士博博客根目录位 /var/www/html/shibo-wordpress/.htaccess 士博论坛根目录位 /var/www/html/shibo-discuz/.htaccess 士博学习根目录位 /var/www/html/shibo-study/.htaccess HTTP 80 强制转 HTTPS全站采用https协议访问,所以需要http重定向到https,只需要在.htaccess加入下面规则在相应的网站根目录新建 .htaccess例如,在士博博客的网站根目录下,新建/var/www/html/shibo-wordpress/.htaccess,内容如下:RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L] 或者内容为:RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L] 强制301重定向 HTTPS<IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{SERVER_PORT} !^443$ RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L] </IfModule> 站点绑定多个域名只允许kevin.con和www.kevin.com 跳转RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteCond %{HTTP_HOST} ^kevin.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.kevin.com [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L] 高级用法 (可选)RewriteEngine on # 强制HTTPS RewriteCond %{HTTPS} !=on [OR] RewriteCond %{SERVER_PORT} 80 # 某些页面强制 RewriteCond %{REQUEST_URI} ^something_secure [OR] RewriteCond %{REQUEST_URI} ^something_else_secure RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] # 强制HTTP RewriteCond %{HTTPS} =on [OR] RewriteCond %{SERVER_PORT} 443 # 某些页面强制 RewriteCond %{REQUEST_URI} ^something_public [OR] RewriteCond %{REQUEST_URI} ^something_else_public RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] Apache mod_rewrite实现HTTP和HTTPS重定向跳转当你的站点使用了HTTPS之后,你可能会想把所有的HTTP请求(即端口80的请求),全部都重定向至HTTPS(即端口443)。这时候你可以用以下的方式来做到:(Apache mod_rewrite)把这段代码放在.htaccess文件,即可实现HTTP到HTTPS的重定向。 RewriteEngine On RewriteBase / RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://blog.shibo.com/$1 [R=301,L] </IfModule> 而当你又想用回HTTP的时候,反过来就可以了:<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{SERVER_PORT} 443 RewriteRule ^(.*)$ https://blog.shibo.com/$1 [R=301,L] </IfModule> 其中R=301表示Moved Permanently,即告诉搜索引擎或者浏览器下去直接访问后者的地址,如果只是试验性地重定向,可以使用R=302(Found),临时跳转VirtualHost 添加重定向需要注意实测以上方法,对于下面需求场景,都无效!!下面项目场景:1) 在我的根目录下 /var/www/htmp/2) 配置有多个网站,如士博博客(/var/www/htmp/shibo-blog/)、士博论坛(/var/www/htmp/shibo-forum/)、士博学习(/var/www/htmp/shibo-study/)等3) 对于士博博客的http请求,全部定向到https博客;对于士博论坛的http请求,全部定向到https论坛;最后,解决方案是在 VirtualHost 节点里,添加如下配置:RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R] 完整配置参数如下:# blog <VirtualHost *:80> ServerAdmin yanggang_2050@163.com DocumentRoot /var/www/html/wordpress ServerName blog.shibo.com RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R] DirectoryIndex index.php ErrorLog /var/log/blog.shibo.com-error_log CustomLog /var/log/blog.shibo.com-access_log common </VirtualHost> 3) 示例三在启用了https之后,还要保证之前的http端口可以打开,http的80端口是有两个网址的,所以这就导致需要把原来的带www和不带www的kevin.com域名同时指定一个https网址上面(https://kevin.com),需要做两个Apache的301重定向,这个其实是很简单的,最简单的做法是直接在 .htaccess文件中添加两个301即可,如下所示:rewritecond %{http_host} ^www.kevin.com [nc] RewriteRule ^(.*)?$ https://kevin.com/$1 [R=301,L] RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://kevin.com/$1 [R=301,L] 第一个 301 很自然就是带 www 的跳转到新的 https 上面了,而下面的301重定向则是判断如果端口不是80的话,则进行重定向,这样的话,带www和不带www的域名就一起跳转到 https 一个网址上面了,当然这种全站做301的方法是比较暴力的,通常情况下我们只要把主域名做个301就可以了,我这里是因为启用了原来的两个域名。4) 示例四:一些其它的 Apache http 跳转到 https 的方法方法1RewriteEngine On RewriteBase / RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://kevin.com/$1 [R=301,L] #这样跳转的好处是独立IP主机也支持,访问ip能自动跳转到https 方法2RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [R=301,L] #整站跳转 方法3RewriteEngine on RewriteBase /yourfolder RewriteCond %{SERVER_PORT} !^443$ #RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [R=301,L] RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] #以上至针对某个目录跳转, yourfolder就是目录名 方法4RewriteEngine on RewriteCond %{SERVER_PORT} 80 RewriteCond %{REQUEST_URI} /beijing RewriteRule ^(.*$) https://test.kevin.com/beijing/ [R,L] #针对url中的次级path路径,比如上面的beijing,上面配置可以实现: 访问http://test.kevin.com/beijing/.... 跳转到 https://test.kevin.com/beijing/..... 方法5# 强制HTTPS方式访问,对WWW或顶级域名不做跳转。 RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.kevin.com/$1 [L,R=301] #强制HTTPS方式访问,并自动将顶级域名跳转到WWW。 RewriteEngine On RewriteCond %{HTTP_HOST} !^www.kevin.com$ [NC] RewriteRule ^(.*)$ https://www.kevin.com/$1 [L,R=301] RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.kevin.com/$1 [L,R=301] #强制HTTPS方式访问,并自动将WWW跳转到顶级域名。 RewriteEngine On RewriteCond %{HTTP_HOST} !^kevin.com$ [NC] RewriteRule ^(.*)$ https://kevin.com/$1 [L,R=301] RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://kevin.com/$1 [L,R=301]方法6redirect 301 /你的网页 https://你的主机+网页 #针对某个网页跳转 比如: redirect 301 /beijing.html https://www.kevin.com/beijing.html 方法7下面是一个http跳转https的配置 修改根目录.htaccess文件,内容配置如下: <IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On #thinkphp去掉index.php RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] #http自动跳转到https RewriteCond %{SERVER_PORT} !^443$ #只有匹配对应的域名才会跳转 RewriteCond %{SERVER_NAME} ^hrsc.cc|www.hrsc.cc$ RewriteRule (.*) https://%{SERVER_NAME}/$1 [R] </IfModule>                          Apache的https证书免费申请和http->https跳转配置                         免费https证书可以参考 (apache和nginx都可以使用,效果很强悍!):https://github.com/Neilpang/acme.sh#3-install-the-issued-cert-to-apachenginx-etchttps://my.oschina.net/jianhui1980/blog/1612469https://www.cnblogs.com/jxlwqq/p/7492274.html (推荐用这个链接,智能从apache配置中自动完成配置, 不需要指定网站根目录)配置记录如下 (确保服务器的80和443端口在防火墙里已经提前放行):=========================================================================================== 配置http: [root@test-web-php extra]# cat httpd-vhosts.conf <VirtualHost *:80> ServerAdmin webmaster@example.com DocumentRoot "/www/wwwroot/www.kevin.com/web" ServerName 0207917c.www.kevin.com ServerAlias www.kevin.com errorDocument 404 /404.html ErrorLog "/www/wwwlogs/www.kevin.com-error_log" CustomLog "/www/wwwlogs/www.kevin.com-access_log" combined #DENY FILES <Files ~ (\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$> Order allow,deny Deny from all </Files> #PHP <FilesMatch \.php$> SetHandler "proxy:unix:/tmp/php-cgi-70.sock|fcgi://localhost" </FilesMatch> #PATH <Directory "/www/wwwroot/www.kevin.com/web"> SetOutputFilter DEFLATE Options FollowSymLinks AllowOverride All Require all granted DirectoryIndex index.php index.html index.htm default.php default.html default.htm </Directory> </VirtualHost> =========================================================================================== 配置https: [root@test-web-php extra]# cat httpd-ssl.conf Listen 0.0.0.0:443 SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4 SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4 SSLHonorCipherOrder on SSLProtocol all -SSLv3 SSLProxyProtocol all -SSLv3 SSLPassPhraseDialog builtin SSLSessionCache "shmcb:/www/server/apache/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300 <VirtualHost *:443> ServerAdmin webmaster@example.com DocumentRoot "/www/wwwroot/www.kevin.com/web" ServerName www.kevin.com ServerAlias www.kevin.com errorDocument 404 /404.html SSLEngine on SSLCertificateFile "/home/ubuntu/www/ssl/cert.pem" SSLCertificateKeyFile "/home/ubuntu/www/ssl/key.pem" SSLCertificateChainFile "/home/ubuntu/www/ssl/fullchain.pem" ErrorLog "/www/wwwlogs/www.kevin.com-error_log" CustomLog "/www/wwwlogs/www.kevin.com-access_log" combined #DENY FILES <Files ~ (\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$> Order allow,deny Deny from all </Files> #PHP <FilesMatch \.php$> SetHandler "proxy:unix:/tmp/php-cgi-70.sock|fcgi://localhost" </FilesMatch> #PATH <Directory "/www/wwwroot/www.kevin.com/web"> SetOutputFilter DEFLATE Options FollowSymLinks AllowOverride All Require all granted DirectoryIndex index.php index.html index.htm default.php default.html default.htm </Directory> </VirtualHost> =========================================================================================== 配置http->https强转 [root@test-web-php extra]# cat /www/wwwroot/www.kevin.com/web/.htaccess <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on # RewriteBase / RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] # if a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f # otherwise forward it to index.php RewriteRule . index.php </IfModule> # General setting to properly handle LimeSurvey paths # AcceptPathInfo on =========================================================================================== 证书路径: [root@test-web-php extra]# ll /home/ubuntu/www/ssl/ total 12 -rw-r--r-- 1 root root 1903 May 23 00:53 cert.pem -rw-r--r-- 1 root root 3551 May 23 00:53 fullchain.pem -rw------- 1 root root 1679 May 23 00:53 key.pem二. Apache中 RewriteRule跳转规则参数Apache模块mod_rewrite提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试,比如服务器变量、环境变量、HTTP头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数据库。mod_rewrite模块可以操作URL的所有部分(包括路径信息部分),在服务器级的(httpd.conf)和目录级的(.htaccess)配置都有效,还可以生成最终请求字符串。此重写操作的结果可以是内部子处理,也可以是外部请求的转向,甚至还可以是内部代理处理。以下重点介绍下RewriteRule 的规则以及参数说明。RewriteRule指令是重写引擎的根本。此指令可以多次使用。每个指令定义一个简单的重写规则。这些规则的定义顺序尤为重要——在运行时,规则是按这个顺序逐一生效的。配置格式:RewriteRule Pattern Substitution [flags]1) Pattern是一个作用于当前URL的perl兼容的正则表达式。"当前URL"是指该规则生效时刻的URL的值。它可能与被请求的URL截然不同,因为其他规则可能在此之前已经发生匹配并对它做了改动。2) Substitution是当原始URL与Pattern相匹配时,用来替代(或替换)的字符串。除了纯文本,还可以包含:-  对Pattern的反向引用($N) -  对最后匹配的RewriteCond的反向引用(%N) -  规则条件测试字符串(%{VARNAME})中的服务器变量 -  映射函数调用(${mapname:key|default})3) [flags]标记作为RewriteRule指令的第三个参数,是一个包含以逗号分隔的下列标记的列表:3.1) 'chain|C'(链接下一规则)此标记使当前规则与下一个规则相链接。它产生这样的效果:如果一个规则被匹配,则继续处理其后继规则,也就是这个标记不起作用;如果该规则不被匹配,则其后继规则将被跳过。比如:在一个目录级规则中执行一个外部重定向时,你可能需要删除".www"(此处不应该出现".www")。'cookie|CO=NAME:VAL:domain[:lifetime[:path]]'(设置cookie):在客户端设置一个cookie。cookie的名称是NAME,值是VAL。domain是该cookie的域,比如'.apache.org',可选的lifetime是cookie的有效期(分钟),可选的path是cookie的路径。3.2) 'env|E=VAR:VAL'(设置环境变量)此标记将环境变量VAR的值设为VAL,VAL可以包含可扩展的正则表达式反向引用($N和%N)。此标记可以多次使用以设置多个变量。这些变量可以在其后许多情况下被间接引用,通常是在XSSI(<!--#echo var="VAR"-->)或CGI($ENV{'VAR'})中,也可以在后继的RewriteCond指令的CondPattern参数中通过%{ENV:VAR}引用。使用它可以记住从URL中剥离的信息。3.3) 'forbidden|F'(强制禁止URL)强制禁止当前URL,也就是立即反馈一个HTTP响应码403(被禁止的)。使用这个标记,可以链接若干个RewriteConds来有条件地阻塞某些URL。3.4) 'gone|G'(强制废弃URL)强制当前URL为已废弃,也就是立即反馈一个HTTP响应码410(已废弃的)。使用这个标记,可以标明页面已经被废弃而不存在了。3.5) 'handler|H=Content-handler'(强制指定内容处理器)强自制定目标文件的内容处理器为Content-handler。例如,用来模拟mod_alias模块的ScriptAlias指令,以强制映射文件夹内的所有文件都由"cgi-script"处理器处理。3.6) 'last|L'(结尾规则)立即停止重写操作,并不再应用其他重写规则。它对应于Perl中的last命令或C语言中的break命令。这个标记用于阻止当前已被重写的URL被后继规则再次重写。例如,使用它可以重写根路径的URL('/')为实际存在的URL(比如:'/e/www/')。3.7) 'next|N'(从头再来)重新执行重写操作(从第一个规则重新开始)。此时再次进行处理的URL已经不是原始的URL了,而是经最后一个重写规则处理过的URL。它对应于Perl中的next命令或C语言中的continue命令。此标记可以重新开始重写操作(立即回到循环的开头)。但是要小心,不要制造死循环!3.8) 'nocase|NC'(忽略大小写)它使Pattern忽略大小写,也就是在Pattern与当前URL匹配时,'A-Z'和'a-z'没有区别。3.9) 'noescape|NE'(在输出中不对URI进行转义)此标记阻止mod_rewrite对重写结果应用常规的URI转义规则。 一般情况下,特殊字符('%', '$', ';'等)会被转义为等值的十六进制编码('%25', '%24', '%3B'等)。此标记可以阻止这样的转义,以允许百分号等符号出现在输出中,比如:RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE] ,可以使'/foo/zed转向到一个安全的请求'/bar?arg=P1=zed'。3.10) 'nosubreq|NS'(不对内部子请求进行处理)在当前请求是一个内部子请求时,此标记强制重写引擎跳过该重写规则。比如,在mod_include试图搜索目录默认文件(index.xxx)时,Apache会在内部产生子请求。对于子请求,重写规则不一定有用,而且如果整个规则集都起作用,它甚至可能会引发错误。所以,可以用这个标记来排除某些规则。使用原则:如果你为URL添加了CGI脚本前缀,以强制它们由CGI脚本处理,但对子请求处理的出错率(或资源开销)很高,在这种情况下,可使用这个标记。3.11) 'proxy|P'(强制为代理)此标记使替换成分被内部地强制作为代理请求发送,并立即中断重写处理,然后把处理移交给mod_proxy模块。你必须确保此替换串是一个能够被mod_proxy处理的有效URI(比如以http://hostname开头),否则将得到一个代理模块返回的错误。使用这个标记,可以把某些远程成分映射到本地服务器域名空间,从而增强了ProxyPass指令的功能。 注意:要使用这个功能,必须已经启用了mod_proxy模块。3.12) 'passthrough|PT'(移交给下一个处理器)此标记强制重写引擎将内部request_rec结构中的uri字段设置为filename字段的值,这个小小的修改使得RewriteRule指令的输出能够被(从URI转换到文件名的)Alias, ScriptAlias, Redirect等指令进行后续处理。举一个能说明其含义的例子: 如果要将/abc重写为/def, 然后再使用mod_alias将/def转换为/ghi,可以这样:RewriteRule ^/abc(.*) /def$1 [PT]Alias /def /ghi如果省略了PT标记,虽然将uri=/abc/...重写为filename=/def/...的部分运作正常,但是后续的mod_alias在试图将URI转换到文件名时会遭遇失效。 注意:如果需要混合使用多个将URI转换到文件名的模块时,就必须使用这个标记。此处混合使用mod_alias和mod_rewrite就是个典型的例子。3.13) 'qsappend|QSA'(追加查询字符串)此标记强制重写引擎在已有的替换字符串中追加一个查询字符串,而不是简单的替换。如果需要通过重写规则在请求串中增加信息,就可以使用这个标记。3.14) 'redirect|R [=code]'(强制重定向)若Substitution以http://thishost[:thisport]/(使新的URL成为一个URI)开头,可以强制性执行一个外部重定向。如果没有指定code,则产生一个HTTP响应码302(临时性移动)。如果需要使用在300-400范围内的其他响应代码,只需在此指定即可(或使用下列符号名称之一:temp(默认), permanent, seeother)。使用它可以把规范化的URL反馈给客户端,如将"/~"重写为"/u/",或始终对/u/user加上斜杠,等等。注意:在使用这个标记时,必须确保该替换字段是一个有效的URL。否则,它会指向一个无效的位置!并且要记住,此标记本身只是对URL加上http://thishost[:thisport]/前缀,重写操作仍然会继续进行。通常,你还会希望停止重写操作而立即重定向,那么就还需要使用'L'标记。3.15) 'skip|S=num'(跳过后继规则)此标记强制重写引擎跳过当前匹配规则之后的num个规则。它可以模拟if-then-else结构:最后一个规则是then从句,而被跳过的skip=N个规则是else从句。注意:它和'chain|C'标记是不同的!3.16)'type|T=MIME-type'(强制MIME类型)强制目标文件的MIME类型为MIME-type,可以用来基于某些特定条件强制设置内容类型。比如,下面的指令可以让.php文件在以.phps扩展名调用的情况下由mod_php按照PHP源代码的MIME类型(application/x-httpd-php-source)显示:RewriteRule ^(.+\.php)s$ $1 [T=application/x-httpd-php-source]===========RewriteRule跳转设置案例===========下列配置内容都写到.htaccess文件中,且 .htaccess文件放到apache站点根目录下.1) 如果http://kevin.com/foo/bar不存在,则跳转到http://other.kevin.com/foo/bar  (.htaccess文件放在kevin.com域名的root根目录下)RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ http://other.kevin.com/$1 [R] 2) 将http://kevin.com/foo/bar的GET请求重定向到http://kevin.com/bar(或是将http://kevin.com/foo/bar.html请求重定向到http://kevin.com/bar.html)。用PHP程序处理POST请求,而不是试图重定向一个帖子(这不太可能奏效)。 (.htaccess文件放在kevin.com域名的root根目录下):RewriteEngine On RewriteCond %{REQUEST_METHOD} GET RewriteRule ^/?([^/]*\.html?|[^\./]*)[:;,\.]*$ /$1 [R,L,NS] RewriteCond %{REQUEST_METHOD} POST RewriteRule ^/?([^/]*\.html?|[^\./]*)[:;,\.]*$ /foo/show.php [L,NS] 3) 用一个PHP程序/foo/show.php.处理对没有扩展名的top-level.html文件和文件的所有请求.实现http://www.kevin.com/bobo跳转到http://www.kevin.com/bobo.html  (.htaccess文件放在www.kevin.com域名的root根目录下):RewriteRule ^/?([^/]*\.html?|[^\./]*)[:;,\.]*$ /foo/show.php [L,NS] 三、Apache Rewrite 规则详解1) Rewrite规则简介:Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块。基于服务器级的(httpd.conf)有两种方法:一种是在httpd.conf的全局下直接利用RewriteEngine on来打开rewrite功能;另一种是在局部里利用RewriteEngine on来打开rewrite功能;下面将会举例说明,需要注意的是,必须在每个virtualhost里用RewriteEngine on来打开rewrite功能。否则virtualhost里没有RewriteEngine on, 它里面的规则也不会生效。基于目录级的(.htaccess),要注意一点那就是必须打开此目录的FollowSymLinks属性且在.htaccess里要声明RewriteEngine on。2) 案例说明:案例一下面是在一个虚拟主机里定义的规则。功能是把client请求的主机前缀不是www.kevin.com和192.168.100.29都跳转到主机前缀为http://www.kevin.com,避免当用户在地址栏写入http://kevin.com时不能以会员方式登录网站。NameVirtualHost 192.168.100.8:80 ServerAdmin DocumentRoot "/web/webapp" ServerName www.kevin.com.cn ServerName kevin.com.cn RewriteEngine on RewriteCond %{HTTP_HOST} !^www.kevin.cn [NC] RewriteCond %{HTTP_HOST} !^192.168.10.29 [NC] RewriteCond %{HTTP_HOST} !^$ RewriteRule ^/(.*) http://www.kevin.cn/ [L] 以上配置解释:RewriteEngine on      表示打开rewirte功能RewriteCond %{HTTP_HOST} !^www.kevin.com [NC]       表示声明Client请求的主机中前缀不是www.kevin.com,[NC]的意思是忽略大小写RewriteCond %{HTTP_HOST} !^192.168.100.29 [NC]       表示声明Client请求的主机中前缀不是192.168.100.29,[NC]的意思是忽略大小写RewriteCond %{HTTP_HOST} !^$       表示声明Client请求的主机中前缀不为空RewriteRule ^/(.*) http://www.kevin.com/ [L]       表示如果Client请求的主机中的前缀符合上述条件,则直接进行跳转到http://www.kevin.com/,[L]意味着立即停止重写操作,并不再应用其他重写规则。这里的.*是指匹配所有URL中不包含换行字符,()括号的功能是把所有的字符做一个标记,以便于后面的应用。$1就是引用前面里的(.*)字符。案例二将输入 test.kevin.com 的域名时跳转到tech.kevin.comlisten 8080 NameVirtualHost 192.168.10.25:8080 ServerAdmin DocumentRoot "/usr/local/www/apache22/data1/" ServerName tech.kevin.com RewriteEngine on RewriteCond %{HTTP_HOST} ^test.kevin.com [NC] RewriteRule ^/(.*) tech.kevin.com [L] 3) Apache mod_rewrite规则重写的标志一览(上面其实已经介绍了)3.1)  R[=code](force redirect) 强制外部重定向强制在替代字符串加上http://thishost[:thisport]/前缀重定向到外部的URL.如果code不指定,将用缺省的302 HTTP状态码。3.2)  F(force URL to be forbidden)禁用URL,返回403HTTP状态码。3.3)  G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码。3.4)  P(force proxy) 强制使用代理转发。3.5)  L(last rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。3.6)  N(next round) 重新从第一条规则开始运行重写过程。3.7)  C(chained with next rule) 与下一条规则关联如果规则匹配则正常处理,该标志无效,如果不匹配,那么下面所有关联的规则都跳过。3.8)  T=MIME-type(force MIME type) 强制MIME类型3.9)  NS (used only if no internal sub-request) 只用于不是内部子请求3.10)  NC(no case) 不区分大小写3.11)  QSA(query string append) 追加请求字符串3.12)  NE(no URI escaping of output) 不再输出转义特殊字符例如:RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE] #能正确的将/foo/zoo转换成/bar?arg=P1=zed3.13)  PT(pass through to next handler) 传递给下一个处理例如:RewriteRule ^/abc(.*) /def$1 [PT] #将会交给/def规则处理 lias /def /ghi 3.14)  S=num(skip next rule(s)) 跳过num条规则3.15)  E=VAR:VAL(set environment variable) 设置环境变量4) Apache rewrite例子集合在httpd中将一个域名转发到另一个域名,新域名为www.kevin.com, 更加简短好记。这时需要将原来的域名kevin.cn, 以及论坛所在地址kevin.com/forums/定向到新的域名,以便用户可以找到,并且使原来的论坛 URL 继续有效而不出现 404 未找到,比如原来的http://www.kevin.com/forums/f60.html, 让它在新的域名下继续有效,点击后转发到http://bbs.kevin.com/f60.html, 这就需要用apache的Mod_rewrite功能来实现。在.htaccess中添加下面的重定向规则:RewriteEngine On # Redirect webhosting-kevin.com/forums to bbs.kevin.com RewriteCond %{REQUEST_URI} ^/forums/ RewriteRule /forums/(.*) http://bbs.kevin.com/$1 [R=permanent,L] # Redirect webhosting-kevin.com to kevin.com RewriteCond %{REQUEST_URI} !^/forums/ RewriteRule /(.*) http://www.kevin.com/$1 [R=permanent,L] 5) URL重定向5.1) 案例一访问   http://www.kevin.com/xxx.php   重定向跳转到   http://www.kevin.com/xxx/访问   http://yyy.kevin.com   重定向跳转到   http://www.kevin.com/user.php?username=yyyRewriteEngine On RewriteCond %{HTTP_HOST} ^www.kevin.com RewriteCond %{REQUEST_URI} !^user\.php$ RewriteCond %{REQUEST_URI} \.php$ RewriteRule (.*)\.php$ http://www.kevin.com/$1/ [R] RewriteCond %{HTTP_HOST} !^www.kevin.com RewriteRule ^(.+) %{HTTP_HOST} [C] RewriteRule ^([^\.]+)\.kevin\.com http://www.kevin.com/user.php?username=$1 5.2) 例子二/type.php?typeid=*   重定向跳转到   /type*.html/type.php?typeid=*&page=*    重定向跳转到   /type*page*.htmlRewriteRule ^/type([0-9]+).html$ /type.php?typeid=$1 [PT] RewriteRule ^/type([0-9]+)page([0-9]+).html$ /type.php?typeid=$1&page=$2 [PT] 6) 使用Apache的URL Rewrite配置多用户虚拟服务器要实现这个功能,首先要在DNS服务器上打开域名的泛域名解析(自己做或者找域名服务商做)。比如,我就把 *.kevin.com和 *.zzz.net全部解析到了我的这台Linux Server上。然后,看一下我的Apache中关于*.kevin.com的虚拟主机的设定。#*.com,*.kevin.net ServerAdmin DocumentRoot /home/www/www.kevin.com ServerName dns.kevin.com ServerAlias dns.kevin.com kevin.com kevin.net *.kevin.com *.kevin.net CustomLog /var/log/httpd/zzz/access_log.log" common ErrorLog /var/log/httpd/zzz/error_log.log" AllowOverride None Order deny,allow #AddDefaultCharset GB2312 RewriteEngine on RewriteCond %{HTTP_HOST} ^[^.]+\.zzz\.(com|net)$ RewriteRule ^(.+) %{HTTP_HOST}$1 [C] RewriteRule ^([^.]+)\.zzz\.(com|net)(.*)$ /home/www/www.kevin.com/sylvan$3?un=$1&%{QUERY_STRING} [L] 在上面这段设置中,把*.kevin.net和*.kevin.com 的Document Root都设定到了/home/www/www.kevin.com,后面都配置了URL Rewrite规则。RewriteEngine on      #打开URL Rewrite功能RewriteCond %{HTTP_HOST} ^[^.]+.zzz.(com|net)$     #匹配条件,如果用户输入的URL中主机名是类似 xxxx.kevin.com 或者 xxxx.kevin.net 就执行下面一句RewriteRule ^(.+) %{HTTP_HOST}$1 [C]    #把用户输入完整的地址(GET方式的参数除外)作为参数传给下一个规则,[C]是Chain串联下一个规则的意思RewriteRule ^([^.]+)\.zzz\.(com|net)(.*)$ /home/www/www.kevin.com/sylvan$3?un=$1&%{QUERY_STRING} [L]# 最关键的是这一句,使用证则表达式解析用户输入的URL地址,把主机名中的用户名信息作为名为un的参数传给/home/www/www.kevin.com目录下的脚本,并在后面跟上用户输入的GET方式的传入参数。并指明这是最后一条规则([L]规则)。注意,在这一句中指明的重写后的地址用的是服务器上的绝对路径,这是内部跳转。如果使用http://xxxx这样的URL格式,则被称为外部跳转。使用外部跳转的话,浏览着的浏览器中的URL地址会改变成新的地址,而使用内部跳转则浏览器中的地址不发生改变,看上去更像实际的二级域名虚拟服务器。这样设置后,重启Apache服务器,测试一下,就大功告成了!四、分享13个mod_rewrite 应用实例1) 给子域名加www标记RewriteCond %{HTTP_HOST} ^([a-z.]+)?example\.com$ [NC] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule .? http://www.%1example.com%{REQUEST_URI} [R=301,L] 这个规则抓取二级域名的%1变量,如果不是以www开始,那么就加www,以前的域名以及{REQUEST_URI}会跟在其后。2) 去掉域名中的www标记RewriteCond %{HTTP_HOST} !^example\.com$ [NC] RewriteRule .? http://example.com%{REQUEST_URI} [R=301,L]3) 去掉www标记,但是保存子域名RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?example\.com)$ [NC] RewriteRule .? http://%1%{REQUEST_URI} [R=301,L]这里,当匹配到1%变量以后,子域名才会在%2(内部原子)中抓取到,而我们需要的正是这个%1变量。4) 防止图片盗链 一些站长不择手段的将你的图片盗链在他们网站上,耗费你的带宽。你可以加一下代码阻止这种行为。RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/ [NC] RewriteRule \.(gif|jpg|png)$ - [F] 如果{HTTP_REFERER}值不为空,或者不是来自你自己的域名,这个规则用[F]FLAG阻止以gif|jpg|png 结尾的URL 如果对这种盗链你是坚决鄙视的,你还可以改变图片,让访问盗链网站的用户知道该网站正在盗用你的图片。RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/.*$ [NC] RewriteRule \.(gif|jpg|png)$ http://你的图片地址 [R=301,L] 除了阻止图片盗链链接,以上规则将其盗链的图片全部替换成了你设置的图片。 你还可以阻止特定域名盗链你的图片:RewriteCond %{HTTP_REFERER} !^http://(www\.)?leech_site\.com/ [NC] RewriteRule \.(gif|jpg|png)$ - [F,L] 这个规则将阻止域名黑名单上所有的图片链接请求。 当然以上这些规则都是以{HTTP_REFERER}获取域名为基础的,如果你想改用成IP地址,用{REMOTE_ADDR}就可以了。5) 如果文件不存在重定向到404页面 如果你的主机没有提供404页面重定向服务,那么我们自己创建。RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .? /404.php [L] 这里-f匹配的是存在的文件名,-d匹配的存在的路径名。这段代码在进行404重定向之前,会判断你的文件名以及路径名是否存在。你还可以在404页面上加一个?url=$1参数:RewriteRule ^/?(.*)$ /404.php?url=$1 [L] 这样,你的404页面就可以做一些其他的事情,例如默认信心,发一个邮件提醒,加一个搜索,等等。6) 重命名目录如果你想在网站上重命名目录,试试这个:RewriteRule ^/?old_directory/([a-z/.]+)$ new_directory/$1 [R=301,L]在规则里我添加了一个“.”(注意不是代表得所有字符,前面有转义符)来匹配文件的后缀名。7) 将.html后缀名转换成.php前提是.html文件能继续访问的情况下,更新你的网站链接。 RewriteRule ^/?([a-z/]+)\.html$ $1.php [L] 这不是一个网页重定向,所以访问者是不可见的。让他作为一个永久重定向(可见的),将FLAG修改[R=301,L]。8) 创建无文件后缀名链接如果你想使你的PHP网站的链接更加简洁易记-或者隐藏文件的后缀名,试试这个: RewriteRule ^/?([a-z]+)$ $1.php [L]如果网站混有PHP以及HTML文件,你可以用RewriteCond先判断该后缀的文件是否存在,然后进行替换RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^/?([a-zA-Z0-9]+)$ $1.php [L] RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^/?([a-zA-Z0-9]+)$ $1.html [L]如果文件是以.php为后缀,这条规则将被执行。9) 检查查询变量里的特定参数如果在URL里面有一个特殊的参数,你可用RewriteCond鉴别其是否存在RewriteCond %{QUERY_STRING} !uniquekey= RewriteRule ^/?script_that_requires_uniquekey\.php$ other_script.php [QSA,L]以上规则将检查{QUERY_STRING}里面的uniquekey参数是否存在,如果{REQUEST_URI}值为script_that_requires_uniquekey,将会定向到新的URL。 10)删除查询变量Apache的mod_rewrite模块会自动辨识查询变量,除非你做了以下改动: a).分配一个新的查询参数(你可以用[QSA,L]FLAG保存最初的查询变量) b).在文件名后面加一个“?”(比如index.php?)。符号“?”不会在浏览器的地址栏里显示。11) 用新的格式展示当前URI 如果这就是我们当前正在运行的URLs:/index.php?id=nnnn。我们非常希望将其更改成/nnnn并且让搜索引擎以新格式展现。首先,我们为了让搜索引擎更新成新的,得将旧的URLs重定向到新的格式,但是,我们还得保证以前的index.php照样能够运行。实现以上功能,诀窍就在于在查询变量中加了一个访问者看不到的标记符“marker”。我们只将查询变量中没有出现“marker”标记的链接进行重定向,然后将原有的链接替换成新的格式,并且通过[QSA]FLAG在已有的参数加一个“marker”标记。以下为实现的方式: RewriteCond %{QUERY_STRING} !marker RewriteCond %{QUERY_STRING} id=([-a-zA-Z0-9_+]+) RewriteRule ^/?index\.php$ %1? [R=301,L] RewriteRule ^/?([-a-zA-Z0-9_+]+)$ index.php?marker&id=$1 [L]这里,原先的URL:http://www.example.com/index.php?id=nnnn,不包含marker,所以被第一个规则永久重定向到http://www.example.com/nnnn,第二个规则将http://www.example.com/nnnn反定向到http://www.example.com/index.php?marker&id=nnnn,并且加了marker以及id=nnnn两个变量,最后mod_rewrite就开始进行处理过程。第二次匹配,marker被匹配,所以忽略第一条规则,这里有一个“.”字符会出现在http://www.example.com/index.php?marker&id=nnnn中,所以第二条规则也会被忽略,这样我们就完成了。注意,这个解决方案要求Apache的一些扩展功能,所以如果你的网站放于在共享主机中会遇到很多障碍。12) 保证安全服务启用Apache可以用两种方法辨别你是否开启了安全服务,分别引用{HTTPS}和{SERVER_PORT}变量: RewriteCond %{REQUEST_URI} ^secure_page\.php$ RewriteCond %{HTTPS} !on RewriteRule ^/?(secure_page\.php)$ https://www.kevin.com/$1 [R=301,L]以上规则测试{REQUEST_URI}值是否等于我们的安全页代码,并且{HTTPS}不等于on。如果这两个条件同时满足,请求将被重定向到安全服务URI.另外你可用{SERVER_PORT}做同样的测试,443是常用的安全服务端口 RewriteCond %{REQUEST_URI} ^secure_page\.php$ RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^/?(secure_page\.php)$ https://www.kevin.com/$1 [R=301,L]13) 在特定的页面上强制执行安全服务 遇到同一个服务器根目录下分别有一个安全服务域名和一个非安全服务域名,所以你就需要用RewriteCond 判断安全服务端口是否占用,并且只将以下列表的页面要求为安全服务: RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^/?(page1|page2|page3|page4|page5)$ https://www.kevin.com/%1 [R=301,L] 以下是怎样将没有设置成安全服务的页面返回到80端口:RewriteCond %{ SERVER_PORT } ^443$ RewriteRule !^/?(page6|page7|page8|page9)$ zzz.com%{REQUEST_URI} [R=301,L] 五、由于有些例子是针对特殊路径或特别情况的,以下列出一些例子供参考:目标重写设置说明规范化URLRewriteRule   ^/~([^/]+)/?(.*)   /u/$1/$2 [R]将/~user重写为/u/user的形式 RewriteRule   ^/([uge])/([^/]+)$   /$1/$2/ [R]将/u/user末尾漏掉的/补上   规范化HostNameRewriteCond   %{HTTP_HOST}   !^fully\.qualified\.domain\.name   [NC]域名不合格 RewriteCond   %{HTTP_HOST}   !^$不空 RewriteCond   %{SERVER_PORT}   !^80$不是80端口 RewriteRule   ^/(.*)   http://fully.qualified.domain.name:%{SERVER_PORT}/$1   [L,R]重写 RewriteCond   %{HTTP_HOST}   !^fully\.qualified\.domain\.name   [NC]  RewriteCond   %{HTTP_HOST}   !^$  RewriteRule   ^/(.*)   http://fully.qualified.domain.name/$1   [L,R]    URL根目录转移RewriteEngine on  RewriteRule   ^/$   /e/www/ [R]从/移到/e/www/   末尾目录补斜线RewriteEngine on (目录范围内)RewriteBase   /~quux/  RewriteRule   ^foo$   foo/   [R]/~quux/foo是一个目录,补/    RewriteEngine on  RewriteBase   /~quux/  RewriteCond   %{REQUEST_FILENAME}   -d如果请文件名是个目录 RewriteRule   ^(.+[^/])$   $1/ [R]URL末尾不是斜线时补上   Web集群RewriteEngine on  RewriteMap   user-to-host   txt:/path/to/map.user-to-host用户-服务器映射 RewriteMap   group-to-host   txt:/path/to/map.group-to-host组-服务器映射 RewriteMap   entity-to-host   txt:/path/to/map.entity-to-host实体-服务器映射 RewriteRule   ^/u/([^/]+)/?(.*)   http://${user-to-host:$1|server0}/u/$1/$2用户均衡 RewriteRule   ^/g/([^/]+)/?(.*)   http://${group-to-host:$1|server0}/g/$1/$2组均衡 RewriteRule   ^/e/([^/]+)/?(.*)   http://${entity-to-host:$1|server0}/e/$1/$2实体均衡 RewriteRule   ^/([uge])/([^/]+)/?$   /$1/$2/.www/  RewriteRule   ^/([uge])/([^/]+)/([^.]+.+)   /$1/$2/.www/$3\    URL根目录搬迁RewriteEngine on  RewriteRule   ^/~(.+)   http://newserver/~$1   [R,L]到其它服务器   所用户名首字母分RewriteEngine on  RewriteRule   ^/~(([a-z])[a-z0-9]+)(.*)   /home/$2/$1/.www$3内一层括号为$2   NCSA imagemap移RewriteEngine on 植为mod_imapRewriteRule   ^/cgi-bin/imagemap(.*)   $1   [PT]    多目录查找资源RewriteEngine on  # first try to find it in custom/...  RewriteCond   /your/docroot/dir1/%{REQUEST_FILENAME}   -f  RewriteRule   ^(.+) /your/docroot/dir1/$1   [L]  # second try to find it in pub/...  RewriteCond   /your/docroot/dir2/%{REQUEST_FILENAME}   -f  RewriteRule   ^(.+)   /your/docroot/dir2/$1   [L]  # else go on for other Alias or ScriptAlias directives,  RewriteRule   ^(.+)   - [PT]    据URL设置环境变量RewriteEngine on  RewriteRule   ^(.*)/S=([^/]+)/(.*)   $1/$3 [E=STATUS:$2]    虚拟主机RewriteEngine on  RewriteCond   %{HTTP_HOST}   ^www\.[^.]+\.host\.com$基于用户名 RewriteRule   ^(.+)   %{HTTP_HOST}$1   [C]  RewriteRule   ^www\.([^.]+)\.host\.com(.*)   /home/$1$2    内外人有别RewriteEngine on  RewriteCond   %{REMOTE_HOST}   !^.+\.ourdomain\.com$基于远程主机 RewriteRule   ^(/~.+)   http://www.somewhere.com/$1   [R,L]    错误重定向RewriteEngine on  RewriteCond   /your/docroot/%{REQUEST_FILENAME}   !-f不是regular文件 RewriteRule   ^(.+)   http://webserverB.dom/$1    程序处理特殊协议RewriteRule   ^xredirect:(.+)   /path/to/nph-xredirect.cgi/$1 \Xredirect协议 [T=application/x-httpd-cgi,L]    最近镜像下载RewriteEngine on  RewriteMap   multiplex   txt:/path/to/map.cxan顶级域名与最近ftp服务器映射 RewriteRule   ^/CxAN/(.*)   %{REMOTE_HOST}::$1 [C]  RewriteRule   ^.+\.([a-zA-Z]+)::(.*)$   ${multiplex:$1|ftp.default.dom}$2   [R,L]据顶级域名不同提供不同的FTP服务器   基于时间重写RewriteEngine on  RewriteCond   %{TIME_HOUR}%{TIME_MIN}   >0700  RewriteCond   %{TIME_HOUR}%{TIME_MIN}   <1900  RewriteRule   ^foo\.html$   foo.day.html白天为早晚7点间 RewriteRule   ^foo\.html$   foo.night.html其余为夜间   向前兼容扩展名RewriteEngine on  RewriteBase /~quux/  # parse out basename, but remember the fact  RewriteRule   ^(.*)\.html$   $1   [C,E=WasHTML:yes]  # rewrite to document.phtml if exists  RewriteCond   %{REQUEST_FILENAME}.phtml -f如果存在$1.phtml则重写 RewriteRule   ^(.*)$   $1.phtml   [S=1]  # else reverse the previous basename cutout  RewriteCond   %{ENV:WasHTML}   ^yes$如果不存在$1.phtml,则保持不变 RewriteRule   ^(.*)$   $1.html    文件改名(目录级)RewriteEngine on内部重写 RewriteBase   /~quux/  RewriteRule   ^foo\.html$   bar.html     RewriteEngine on重定向由客户端再次提交 RewriteBase   /~quux/  RewriteRule   ^foo\.html$   bar.html   [R]    据浏览器类型重写RewriteCond   %{HTTP_USER_AGENT}   ^Mozilla/3.*  RewriteRule   ^foo\.html$ foo.NS.html   [L]  RewriteCond   %HTTP_USER_AGENT}   ^Lynx/.* [OR]  RewriteCond   %{HTTP_USER_AGENT}   ^Mozilla/[12].*  RewriteRule   ^foo\.html$   foo.20.html [L]  RewriteRule   ^foo\.html$   foo.32.html [L]    动态镜像远程资源RewriteEngine on  RewriteBase   /~quux/  RewriteRule   ^hotsheet/(.*)$   http://www.tstimpreso.com/hotsheet/$1   [P]利用了代理模块    RewriteEngine on  RewriteBase   /~quux/  RewriteRule   ^usa-news\.html$   http://www.quux-corp.com/news/index.html [P]    反向动态镜像RewriteEngine on  RewriteCond   /mirror/of/remotesite/$1   -U  RewriteRule   ^http://www\.remotesite\.com/(.*)$   /mirror/of/remotesite/$1    负载均衡RewriteEngine on利用代理实现round-robin效果 RewriteMap   lb   prg:/path/to/lb.pl  RewriteRule   ^/(.+)$   ${lb:$1} [P,L]     #!/path/to/perl  $| = 1;  $name = "www"; # the hostname base  $first = 1; # the first server (not 0 here, because 0 is myself)  $last = 5; # the last server in the round-robin  $domain = "foo.dom"; # the domainname  $cnt = 0;  while () {  $cnt = (($cnt+1) % ($last+1-$first));  $server = sprintf("%s%d.%s", $name, $cnt+$first, $domain);  print "http://$server/$_";  }  ##EOF##    静态页面变脚本RewriteEngine on  RewriteBase   /~quux/  RewriteRule   ^foo\.html$   foo.cgi   [T=application/x-httpd-cgi]    阻击机器人RewriteCond   %{HTTP_USER_AGENT}   ^NameOfBadRobot.*  RewriteCond   %{REMOTE_ADDR}   ^123\.45\.67\.[8-9]$  RewriteRule   ^/~quux/foo/arc/.+   - [F]    阻止盗连你的图片RewriteCond   %{HTTP_REFERER}   !^$  RewriteCond   %{HTTP_REFERER}   !^http://www.quux-corp.de/~quux/.*$   [NC]自己的连接可不能被阻止 RewriteRule   .*\.gif$   - [F]     RewriteCond   %{HTTP_REFERER}   !^$  RewriteCond   %{HTTP_REFERER}   !.*/foo-with-gif\.html$  RewriteRule   ^inlined-in-foo\.gif$   - [F]    拒绝某些主机访问RewriteEngine on  RewriteMap   hosts-deny   txt:/path/to/hosts.deny  RewriteCond   ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}   !=NOT-FOUND   [OR]  RewriteCond   ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}   !=NOT-FOUND  RewriteRule   ^/.*   - [F]    用户授权RewriteCond   %{REMOTE_IDENT}@%{REMOTE_HOST}   !^friend1@client1.quux-corp\.com$  RewriteCond   %{REMOTE_IDENT}@%{REMOTE_HOST}   !^friend2@client2.quux-corp\.com$  RewriteCond   %{REMOTE_IDENT}@%{REMOTE_HOST}   !^friend3@client3.quux-corp\.com$  RewriteRule   ^/~quux/only-for-friends/   - [F]    外部重写程序模板RewriteEngine on  RewriteMap   quux-map   prg:/path/to/map.quux.pl  RewriteRule   ^/~quux/(.*)$   /~quux/${quux-map:$1}     #!/path/to/perl  $| = 1;  while (<>) {  s|^foo/|bar/|;  print $_;  }    搜索引擎友好RewriteRule   ^/products$   /content.php  RewriteRule   ^/products/([0-9]+)$   /content.php?id=$1  RewriteRule   ^/products/([0-9]+),([ad]*),([0-9]{0,3}),([0-9]*),([0-9]*$)   /marso/content.php?id=$1&sort=$2&order=$3&start=$4 ==============================================================================针对apache的route路由转发设置,注意下面几个配置点1)修改httpd.conf主配置文件 [root@kevin01 ~]# cat /usr/local/apache/conf/httpd.conf ........ LoadModule rewrite_module modules/mod_rewrite.so #打开重写转发功能模块 DocumentRoot "/data/www/public" <Directory "/data/www/public"> # apache的站点根目录注意修改 Options FollowSymLinks MultiViews Includes AllowOverride All #要将默认的None改为All Require all granted </Directory> DirectoryIndex index.html index.php #网站首页默认读出index.php和index.html 2)配置vhosts虚拟主机 [root@kevin01 ~]# cat /usr/local/apache/conf/extra/kevin.conf <VirtualHost *:80> ServerName www.kevin-inc.com DocumentRoot /data/www/public DirectoryIndex index.php index.html ErrorLog "/var/log/httpd/www.kevin.com-error_log" CustomLog "/var/log/httpd/www.kevin.com-access_log" common </VirtualHost> 3)配置站点根目录/data/www/public路径下的.htaccess文件 [root@kevin01 ~]# cat /data/www/public/.htaccess <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule> 4)重启apache服务 [root@kevin01 ~]# /usr/local/apache/bin/httpd -t Syntax OK [root@kevin01 ~]# /usr/local/apache/bin/httpd -k restart 5)另外要注意apache站点根目录下的权限,一定要修改为apache启动用户的权限 [root@kevin01 ~]# ps -ef|grep apache root 3631 1 0 Oct14 ? 00:00:27 /usr/local/apache/bin/httpd daemon 13770 3631 0 18:13 ? 00:00:00 /usr/local/apache/bin/httpd daemon 13775 3631 0 18:13 ? 00:00:00 /usr/local/apache/bin/httpd [root@kevin01 ~]# chown -R daemon.daemon /data/www/public ================================================== 如果apache是http强转为https关系的route路由转发的配置,基本配置注意点如下: 1)配置httpd.conf主配置文件 [root@kevin01 ~]# cat /usr/local/apache/conf/httpd.conf LoadModule ssl_module modules/mod_ssl.so #打开https访问的功能模块 LoadModule rewrite_module modules/mod_rewrite.so #打开重写跳转功能模块 DocumentRoot "/data/www/public" <Directory "/data/www/public"> Options FollowSymLinks MultiViews Includes AllowOverride All Require all granted </Directory> DirectoryIndex index.html index.php 2)配置vhosts虚拟主机 [root@kevin01 ~]# cat /usr/local/apache/conf/extra/kevin.conf <VirtualHost *:80> ServerName www.kevin.com DocumentRoot /data/www/public DirectoryIndex index.php index.html ErrorLog "/var/log/httpd/www.kevin.com-error_log" CustomLog "/var/log/httpd/www.kevin.com-access_log" common </VirtualHost> [root@kevin01 ~]# cat /usr/local/apache/conf/extra/httpd-ssl.conf Listen 443 SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4 SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4 SSLHonorCipherOrder on SSLProtocol all -SSLv3 SSLProxyProtocol all -SSLv3 SSLPassPhraseDialog builtin SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300 <VirtualHost *:443> DocumentRoot "/data/www/public" ServerName www.kevin.com DirectoryIndex index.php index.html SSLEngine on SSLCertificateFile "/usr/local/apache/conf/ssl/ssl.kevin.com.crt" SSLCertificateKeyFile "/usr/local/apache/conf/ssl/ssl.kevin.com.key" ErrorLog "logs/www.kevin.com-https-error_log" CustomLog "logs/www.kevin.com-https-access_log" combined </VirtualHost> [root@kevin01 ~]# ll /usr/local/apache/conf/ssl/ total 8 -rw-rw-r-- 1 root root 4085 Apr 8 2018 ssl.kevin.com.crt -rw-rw-r-- 1 root root 1706 Apr 8 2018 ssl.kevin.com.key 3)配置站点根目录/data/www/public路径下的.htaccess文件(包括http强转到https的配置) [root@kevin01 ~]# cat /data/www/public/.htaccess <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule> 4)重启apache服务 [root@kevin01 ~]# /usr/local/apache/bin/httpd -t Syntax OK [root@kevin01 ~]# /usr/local/apache/bin/httpd -k restart 5)另外要注意apache站点根目录下的权限,一定要修改为apache启动用户的权限 [root@kevin01 ~]# ps -ef|grep apache root 3631 1 0 Oct14 ? 00:00:27 /usr/local/apache/bin/httpd daemon 13770 3631 0 18:13 ? 00:00:00 /usr/local/apache/bin/httpd daemon 13775 3631 0 18:13 ? 00:00:00 /usr/local/apache/bin/httpd [root@kevin01 ~]# chown -R daemon.daemon /data/www/public转载于:https://www.cnblogs.com/kevingrace/p/9565123.html相关资源:Apache之Rewrite和RewriteRule规则梳理以及http强转https的配置...
 0    0  881天前
hupei
4604
HUAWEI华为手机忘记了密码解锁解激活锁教程账户锁解锁平台包下载刷机包软件固件没手机验证进不了系统手机绑定那个账号怎么破解呢双清后出现的账户锁定问题,激活锁怎么注销.怎么删除更换重置.关联号解绑方法教程恢复出厂设置以后要验证手机号华为手机那号码是别人的手机激活忘記密码怎么办华为此设备关联至华为帐号并被激活锁锁定解决方法恢复出厂设置后,提示需要激活,激活码忘记,手机号已经停用关联至华为帐号(1..),并被激活锁锁定,请输入相应密码激活设备掉设备锁 准备自己解锁华为帐号的锁定屏幕锁华为手机的机友们可以动手了用到普通数据线一根电脑联网正常就行啦1,这里首先把华为新老款机通用的进入双清模式(关机.按紧音量+键和电源键进入),再对手机进行双清选恢复出厂设置,双清完后重启设备手机2,设备重启进入,语言设定界面什么都不要选,点击紧急呼叫输入*#*#2846579#*#* 进工程模式,选“后台设置”,然后选“USB端口设置”,选择Hisuite模式生产 3,要电脑下载华为手机助手,安装完毕后手机用数据线连接电脑,这时手机上弹出授权提示,点允许,连接上华为助手后电脑弹出安装手机助手,点确定,安装好以后手机点同意,接下来要注意的是手机出现WALN连接的提示后要马上点,不然手机助手连接上就要从头再来了,只要手机进了选择wifi的窗口后就可以拔掉数据线了,接下来就是手机的操作 4,手机上选择WLAN直连,正在搜索的时候直接点停止,(注意:这里不要连上WIFI,一定不联任何网络)然后点查看可能原因,再点了解更多,然后点“同意”,进入客服回答界面,随便输入一个问题,会提示“网络链接错误。。。”,点“点此设置”,进入“设置”界面 点“高级设置”-》安全-》查找我的手机-》输入华为帐号登录,OK,完成,一路的返回,回到语言设置界面,然后一路通送,就成功解锁手机了 5,上述的方法没办法解锁解绑手机屏幕锁激活锁还是有账号的继续就用这个华为新老款机通用强制线刷解账号屏幕锁清除工具平台包来解锁 包的下载链接: https://pan.baidu.com/s/1-CoKMBEMy-_hxgZkYetVUg 提取码: nidt 复制这段内容后打开百度网盘手机App,操作更方便哦   高速下载链接: https://yun.panbadu.com/list.php/usbhuawei   要把下载后面的这一长段复好然后在你的电脑上或者电脑的游览器上粘进去访问进这去下载好这个专用强制解锁包再解压它.里面有需要用到的驱动安装上先 6.再找到包里面的方法照方法先运行里面的解锁清除擦除平台方法流程.按照里面一步一步操作平台提示成功手机重启设备开机进手机系统就是行啦 就终级强制清除所有锁定了自已就成功动手弄完这台手机了 
 0    0  883天前
hupei
4917
5号win11正式版开始陆续推送更新,但是一直没收到推送。然后发现官网有个升级助手。可以直接从win10升级到win11,我用了家里的三个电脑试了一下其中,联想的r7000直接通过检测升级了。惠普的办公笔记本开启了TMP2.0以后也可以升级了。台式机是华硕的主板,提示我需要开启安全启动。我折腾了两个小时。。最终找到一个简单的方式:----------------------------------------------------------------------------------------------------------win11 要求必须为安全启动,其实就是要求是将Win10系统硬盘MBR模式无损的转换为GPT模式其实Win10系统中自带了MBR2GPT命令,可以很方便的进行转换,并且不损坏数据,是无损的。重要事项:1、将硬盘转换为GPT后,必须配合UEFI引导,操作系统才能启动。执行此操作前请务必确认您的机器和系统是否支持UEFI引导模式!2、使用此工具理论上不会丢失硬盘数据,但为了保险起见,建议还是备份好重要数据,避免翻车,小心驶得万年船。操作步骤如下:1、检查当前磁盘先以管理员身份运行命令提示符,输入以下命令,然后回车:mbr2gpt /validate /allowfullosvalidate表示对当前硬盘进行验证,需满足下列条件才能进行后续的转换操作2、转换mbr2gpt /convert /allowfullos对于SSD硬盘,转换过程很快(经实际测试,或许只要2~5S);机械硬盘未经测试过,时间可能会长一些。-- 以上教程来自网络----------------------------------------------------------------------------------------------------------最后在在BIOS中设置为UEFI启动模式即可,不然是无法启动的。每个品牌的板子不一样,大家自己百度一下如何设置即可,这个很好找。升级助手阿里云盘:https://www.aliyundrive.com/s/T8KdWQ8WUtaDG中也能转
 0    0  883天前
hupei
1880
  一华硕H81主板的组装机,键盘和鼠标偶尔失灵,有时键盘失灵,有时鼠标失灵,有时同时失灵,有时开机正常,过个几分钟就失灵。          首先换键盘鼠标无效,重装系统无效,换主板无效,换电源无效。后来实在没办法了拿到店里,店里测试又一切正常,这是我首先想到的会不会是用户家里有什么电磁干扰,排查了很久也没发现有哪里干扰的,后来实在没办法了,想到用户家和我店里就显示器不同,换个显示器试试,结果显示器一换立马好了,真是见到鬼了,显示器显示一切正常,并且接到其他电脑上又一起正常。          后来认真分析了一下,应该还是干扰,这个显示器是老式的灯管背光,估计是高压线圈或者灯管漏电通过VGA线传到主机造成干扰。
 0    0  883天前
hupei
2088
自从看了一系列美国大片之后,对于正在热映的大片都有上网搜索资源的欲望,但是很多资源网站不是被封就是弹窗广告一大堆,很让人反感。我想到了自己搭建一个属于自己的免费视频网站。但是最近一条新闻可谓是引爆了站长圈子,‘bt天堂’站长被抓,判刑3年,罚款80万,吃免费的劳饭。相信只要是学过法律的同学都知道,采集优酷、爱奇艺、搜狐之类的视频网站资源,通过购买服务器域名搭建影视网站,向公众传播并以此牟利的行为是民事侵犯知识产权的行为、刑事上侵犯著作权罪的行为,但是这个行业利益太大,不少人铤而走险,购买国外的服务器和域名搭建网站。我从一个采集网站上看到的赞助计划非常诱人,5k-1w ip赞助800元人民币,ip在1w-1.5w赞助1800元人民币,ip在1.5W-2w赞助2500元人民币,ip在2w-2.5w赞助3500元人民币,ip在2.5w-3w赞助5500元人民币。这种赞助计划非常诱人,因为一个视频网站站长只需要付出服务器费用和域名费用,然后做下SEO,轻轻松松就能赚到钱。可是,风险和收益是不成比例的。2018年下半年随着国家对著作权保护的加强,越来越多的侵权行为受到了法律的制裁,做视频网站躺着赚钱的时代已经过去,规规矩矩做人才是正道。当然,我们自己做一个自己能够访问的网站,自己欣赏视频,不做盈利的行为,做学术交流是可行的。去年黑色星期五的时候买了2刀的虚拟主机打算用来做视频网站的,想想算了,国外的服务器访问慢,域名还要用阿里云解析,什么时候被查水表就完蛋了,今天我就尝试了用wamp用自己的破笔记本搭建了一个本地的cms视频网站,没想到还真可以看视频,可惜的是现在网上的视频cms除了苹果CMS支持php7.0以上版本外,其他的都不支持php7.0以上版本,将就只用也行了。准备工具:Wamp 下载地址1:Yunfile  下载地址2:城通网盘(30天)苹果CMS 下载地址1:Yunfile 下载地址2:城通网盘(30天) 下载地址3:蓝奏云下载wamp.exe安装程序,安装的时候最好把安装目录改为除C盘以外的其他盘,因为建站以后程序占用内存比较大,保不齐以后你又想搭建什么网站,所以最好放在C盘以外。大约3-5分钟程序就能安装完成。在安装苹果CMS程序之前首先需要在http://localhost/phpmyadmin/index.php里面新建数据库,PHPmyadmin面板默认账号:root,密码:空。添加新的数据库,我这里数据库名添加的是mac10,然后关闭面板。将苹果CMS压缩包解压,然后将文件夹复制到wamp64-www文件夹里面,在浏览器框里面输入http://localhost/maccms10/接着回车,填写数据库和管理员账号,这里要注意数据库填写mac10(也就是刚才新添加的数据库名称),数据库用户名root,密码为空,管理员账号随便设置就成功安装苹果CMS程序了。图片就不放了,本来我截了好些图,但是放上来加载太慢了,有需要的话直接下载word文档,我会上传的。安装好苹果CMS之后还需要做最重要的一步,采集影视资源。光安装好程序并没什么用,资源才是最重要的。登录苹果CMS程序管理员后台,点击上方采集,然后点击联盟资源库,选择第一个全网资源V10.tv6.com采集全部,等待资源慢慢采集,我采集了一晚上都没采集完,但是资源还是挺多的,可惜有些视频画质不太好。本来我用的是自定义的资源库,但是不知道为什么会有未分类,err跳过,采集不了,查询了百度也没找到解决办法,但是没啥影响,能用就好。过程图文档:下载地址1:Yunfile 下载地址2:城通网盘(30天) 下载地址3:蓝奏云
 1    0  1103天前
hupei
2263
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….); 删除字段的语法:alter table tablename drop (column);   添加、修改、删除多列的话,用逗号隔开。   使用alter table 来增加、删除和修改一个列的例子。   创建表结构: create table test1 (id varchar2(20) not null);   增加一个字段: alter table test1 add (name varchar2(30) default ‘无名氏’ not null);   使用一个SQL语句同时添加三个字段: alter table test1 add (name varchar2(30) default ‘无名氏’ not null, age integer default 22 not null, has_money number(9,2) );   修改一个字段 alter table test1 modify (name varchar2(16) default ‘unknown’);   另:比较正规的写法是: -- Add/modify columns  alter table TABLE_NAME rename column FIELD_NAME to NEW_FIELD_NAME;   删除一个字段 alter table test1 drop column name;   需要注意的是如果某一列中已经存在值,如果你要修改的为比这些值还要小的列宽这样将会出现一个错误。 例如前面如果我们插入一个值 insert into test1 values (’1′,’我们很爱你’); 然后曾修改列: alter table test1 modify (name varchar2(8)); 将会得到以下错误: ERROR 位于第 2 行: ORA-01441: 无法减小列长度, 因为一些值过大 --------------------------------------------------------------------------------------------------------------- 高级用法: 重命名表 ALTER TABLE table_name RENAME TO new_table_name;   修改列的名称 语法: ALTER TABLE table_name RENAME COLUMN supplier_name to sname; 范例: alter table s_dept rename column age to age1;   附:创建带主键的表>> create table student ( studentid int primary key not null, studentname varchar(8), age int);   1、创建表的同时创建主键约束 (1)无命名 create table student ( studentid int primary key not null, studentname varchar(8), age int); (2)有命名 create table students ( studentid int , studentname varchar(8), age int, constraint yy primary key(studentid)); 2、删除表中已有的主键约束 (1)无命名 可用 SELECT * from user_cons_columns; 查找表中主键名称得student表中的主键名为SYS_C002715 alter table student drop constraint SYS_C002715; (2)有命名 alter table students drop constraint yy; 3、向表中添加主键约束 alter table student add constraint pk_student primary key(studentid);来源:https://blog.csdn.net/baidu_37895884/article/details/77248245
 0    0  1104天前
hupeinet
1735
很多做网络营销的人都在思考的一个共同的问题:如何让自己发布的信息效果更好,怎么发布信息百度排名更靠前!俗话说天道酬勤!很多人选择了凡是可以发布信息的网站,都把自己准备好的内容复制粘贴一遍,然后坐等效果。结果发现自己费了那么大的力气,换来的却是寥寥无几的回应。通常没过几分钟就发现自己发布的信息已经无影无踪了,认为是自己发布的信息被别人新发的信息压沉底了的缘故,然后只好又重新到这些网站发布一遍,然后就发现很多人都在做这样简单重复的工作,你发布完我立刻再发布把你的压下去,甚至花钱搞发帖机在网上自动发帖,如此便形成了恶性循环,使得网站的管理员不停的去删除垃圾帖子。结果还是没有好的效果,浪费了你的时间,浪费了大家的时间。其实本身大家在做的都是徒劳的工作:因为直接去那些信息发布网站查找信息同搜索引擎网站查找信息相比的人数是可以忽略不计的!99%的普通人的信息获得都是从搜索引擎查找,在中国,中文搜索百度所占份额远远超过搜索引擎总合的2/3。也就是如果您发布的信息能被搜索引擎收录并获得好的排名,那么您做的事将不仅仅是事半功倍可以形容!我们发布信息真正的意义在于这些信息如何能被百度谷歌等搜索引擎收录,并有好的排名,发布网站信息怎么使百度排名靠前,客户从这些搜索引擎上找到您发布的内容才是最理想的。要做到这些,首先要了解百度最基本不变的收录和排名规则,百度收录排名规则是百度工程师按照普通人的理解,搜索习惯制定的,总的来说百度的收录规则还是有迹可循的。第一:百度最“喜新厌旧”百度搜索引擎蜘蛛每天都在孜孜不倦的在网络上爬行着寻找新的东西,网络上内容严重重复、雷同甚至抄袭,抄袭的文章通常不会被搜索引擎收录,更不会有良好的排名,所以信息发布内容尽量使用原创内容或者在原来内容上增加创新;第二:百度喜欢简洁清晰明了的内容1.文章标题要简洁清晰明了,文字在10到20字中间为最佳,标题中尽量含有人们搜索时经常使用的关键词或关键字,千万不能与其它文章标题重复,更不能使用计算机无法定义和解释的特殊符号。2.决定搜索引擎排名的另外一个重要因素的正文一定要围绕标题写,一定要有相关的关键字或能够准确表达意图的语句,要多用一些常用的关键词或者相关意义语句特别突出您要表达的内容。千万不能写跑题,天南海北无所不及,这样的文章会让搜索引擎不知所云;3.如果内容不具有唯一、冷门、独家首次发布的内容,那么文章正文描述文字必须超过200字,字写的越多描述越详细,越能被客户理解和信任和采纳,这样的信息越容易使百度排名靠前。4.发布信息要坚持原创,有技巧的一篇原创文章好于普通复制粘贴100次,即使不会写原创,也要把别人发布的好文章标题以及文章正文最上面部分最下面和每行开头文字做比较大的改动,始终保持您发布的内容都是新的,这样才会得到搜索引擎的喜欢,容易使百度排名靠前。第三:百度也喜欢专一、一致和持久性的网页并给予更高的权重网站在百度搜索引擎搜索时经常会发现,百度提供的搜索结果并非是某一篇单独的文章,而通常是相关内容的集合体,这些内容表达通常比较专一和一致 ,时间越久远越容易被百度信任。第四:百度喜欢更新频率较高的网页集合体并给予足够的权重我们说的更新频率并不是指某一条信息每隔多长时间修改一次,今天改,明天改,后天还去修改,相反修改次数特别频繁,这样的页面内容应该是不成熟的表现,所以百度也就越不信任!我们说的更新频率是指某个网页集合体新增内容的频率。我说的网页集合体就是指由多个网页构成的“中心网页”。它可以是某个独立的网址,可以是某个网站的某一个分类,可以是某个网站当中的一个专题,当然也可以是某一个分站或者一个由若干网页组成的“用户中心”。最直接的感受就是我们某个搜索一个关键词,百度通常会将一个独立的网站首页或者人气很高的网站分类排在搜索引擎的前面,而并不是某个单独独立的网页。第五:百度尝试将词义相近内容网页提供给用户在研究百度搜索引擎排名收录规律中我们也发现,百度提供的搜索结果有时候并非真正含有你搜索用的指定的关键词,虽然这种尝试有时候搜索的结果会经常出现驴唇不对马嘴的现象,但是却给那些职业SEO以丧失信心的打击,用比较小的代价遏制了SEO产业的升级。这一点更说明我们用不同方法去发布信息的重要性,有时候你不看重的东西反而能给你带来意想不到的效果。第六:百度搜索引擎排名规则制定更倾向和坚持“内容为王”的原则你们不会想象到为了让计算机正确判断某个内容或者某篇文章的可读性,百度的工程师们有多绞尽脑汁!请记得,如果您想长期坚持做网络营销或信息发布,少走弯路就一定要以“内容为王”!第七:百度更喜欢将自家网站内容优先前置如果你够细心,在使用百度搜索引擎搜索关键词的时候,你会发现排名在百度首页的文章,大多数都是百度网站上面发布的内容。也就是说同样的信息,你能发布到“百度百科”、“百度知道”、“百度贴吧”、“百度百家号”等等等等,这些baidu.com域名的网站上,那么同样标题和内容的文章,这些发布在百度网站上面的内容会有更好的排名效果!第八:百度更喜欢给网站的首页更高的权重和更好的排名如果你想自己的产品或信息能够长期稳定的在百度搜索引擎上有个好的排名,最好您购买个域名,并成功创建网站,然后将最重要的关键词和内容合理地展示在你的网站首页,并且重要的文字和内容一定要正确投放在页面上,尽量减少无效内容和不相干内容,重要的内容要有足够的密度让百度确信,并且这些重要内容尽量不用百度搜索引擎无法顺利识别的图片、Flash动画和js代码等形式表达。第九:百度永远不变的排名规则百度不变的搜索引擎排名规则永远是它的生存之本:用户体验!!!同样,网站发布信息使百度排名靠前您也一定要了解您的用户最想关心什么,并给出完美的解答方案!时间关系,所作文稿没有进行校对,失误之处敬请谅解。
 10    0  1119天前
hupeinet
3428
利用LIKE语句的模糊查询功能,可以让网站生成更加精准的条件查询,再配上合理的title标题设置(包括关键词设置),以及文章正文的正确描述,及文章正文相关关键词密度的合理搭配,只要是网站不被降权,网站收录正常,关键词的竞争烈度不高,那么文章通常都会有一个很好的排名结果。所以设置好标签LIKE语句模糊查询写法,是非常重要的。首先,介绍一下系统自动的SQL语句 ( `title` LIKE '%aaa%' OR `title` LIKE '%bbb%' )  AND `title` NOT LIKE '%ccc%' 示例的意思:§的意思是,模糊搜索文章标题包含关键词aaa或bbb的文章,并且不包含关键词ccc,其中的aaa、bbb、ccc、可以是任何不冲突关键词,例如aaa和ccc的关键词完全一样。%为模糊查询命令,()小括号包括的内容为最优先查询的内容。例如:  ( `title` LIKE '%美国%' OR `title` LIKE '%欧美%' ) AND `title` NOT LIKE '%中国%'这条语句的意思是,搜索文章标题中包含关键词“美国”或“欧美”、并且不得含有关键词“中国”的文章。当然这个SQL语句还可以写得更复杂,例如:( `title` LIKE '%aaa%' OR `title` LIKE '%bbb%' OR `title` LIKE '%ddd%' )  AND ( `title` NOT LIKE '%ccc%' OR `title` NOT LIKE '%ccc%' )。如果你看到这里你还是非常不理解,那么建议您不要使用这个功能,直接使用系统的前2种查询就可以,因为如果这里设置不正确,会出现这个标签前台页面访问出现500错误。多词搜索的前两种,只有在关键词设置里面包含多个关键词的时候才生效,第一种“并且包含”个意思是,文章标题中必须同时存在这些关键词,该文章才能被搜索到;第二种“或者包含”文章标题在多个关键词中出现任何一个,都会被搜索到。
 0    0  1119天前
hupeinet
1903
没有好的SEO的设置,您的网站一年后不是否面临关闭,就是即将成为僵尸网站!并且如果您的网站首页标题经常修改,会导致网站被降权,或者首页不被收录,或者没有排名的。SEO设置最最最最最最最最最最最最最最优先的是网站首页的SEO设置,包括网站首页标题,首页的描述,首页关键词的页面分布和使用密度。这里主要针对百度搜索引擎来说。选关键词的时候一定要选择3~5个百度搜索指数超过1000的词,并且每个词的长度一定要超过4个汉字(即所谓的长尾关键词),并且这些词中尽量避免使用百度付费搜索的热门词。因为这些词即使你辛辛苦苦做到了百度搜索自然排名的第一位,你的网站排名也不会在那些付费推广网站的前面去,从而导致热门词的流量都被其它商业推广的网站截流了。像“淘宝”、“电影网”、“小游戏”、“小说”、“百度一下”——,这类词您还是别直接堆积到您的网站首页标题里面去了,关键词设置并不是说些在网页meta标签keywords中的词,实际上网页meta标签中keywords关键词可以忽略,因为几乎90%以上网站的网页meta标签中keywords关键词设置都不按照套路来,所以很多时候搜索引擎抓取到了之后,往往是将其作为网页噪音过滤掉的。还有人觉得,我的文章写作能力很强,我不在乎首页那一点点流量,其实无论从您写作能力极限来说,还是从写作时间成本上来说,网站首页标题设置即使您用了一个月的时间研究,其作用和性价比都远远大于您拼命地写文章的:第一,您原创文章再多,网站初期从这些文章获得的流量也几乎是0,因为百度搜索引擎对新网站的文章带有歧视政策的,对此您不要有幻想,我写的东西才是用户最需要的,并且是最好的,百度才不管那个呢。另外文章页内容你即使写好了,并且排名上到搜索引擎前面了,但你的文章很有可以被其它网站抄袭,或者干脆被百度文库、百度学术、百度知道、百度....其它产品采集去,您辛辛苦苦写了那么长时间的文章,几乎一夜之间全部为了他人做嫁衣裳。在所有的页面当中,只有网站首页设置来的访客才是最多、最长远、最稳定、最可靠的。通常,对所有网站原创文章带来的流量,从投入和产出角度来讲,几乎都是“赔钱”的,如果没有好的运营手段,这种做法是难以为继的。网站首页设置参考文档:1. http://www.02408.com/p-title.html (标题写法)2. http://www.02408.com/p-description.html (关键词)3. http://www.02408.com/p-keywords.html (网页描述)4.  网页关键词密度设置(以后有时间把文章写出来)
 0    0  1119天前
快速发帖高级模式
Powered by 虎佩中国
© 2012-2024 HuPei.net
您的IP:54.224.52.210,2024-03-19 10:51:45,Processed in 0.07076 second(s).
Powered by HuPei.net
免责声明:本站内容均来自网络,如有侵权请联系站长删除,一切后果概不负责!