很多站长都在问,我们 CMS有伪静态功能吗?出于安全考虑(后续版本可能会加入),我们的 CMS没有直接管理伪静态路由规则的功能,但是我们仍然可以实现伪静态。只要找到您服务器上的伪静态文件,并进行修改即可。这两个文件在v3及以后的 CMS中都已经内置,且写入了一些常规的规则。
-
Windows 服务器:.htaccess
-
Linux 服务器:httpd.ini
二者写法有所区别,主要是利用正则表达式来表达将某种URL通过服务器修改成另外一种表现形式。建议大家查看以下技术文档之后再做修改否则可能导致服务器无法解析您的URL地址找到相应的文件,致使网站打不开。
以下是V3.1.8内置的伪静态规则:
httpd.ini 文件写法
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 1
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
#请在下面加入自己的代码例如
#RewriteRule /index.html /index.php
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteRule /httpd(?:\.ini|\.parse\.errors) / [F,I,O]
RewriteCond URL ^/(statics|index\.php|robots\.txt|favicon\.ico).*
RewriteRule /(.*) /index.php/$1 [I,L]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 ^(index\.php|robots\.txt|statics|install)
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteCond %{HTTP_HOST} ^2yyg\.com$ [NC]
RewriteRule ^(.*)$ http://www\.2yyg\.com$1 [R=301,L]
#去掉链接地址中index.php字符串
RewriteRule .*\.(?:gif|jpg|png|css|js|txt|jpeg|swf|flv|html|htm|ico|apk|ipa|xap) $0 [I,L]
RewriteRule ^(.*)$ /index.php/$1 [L]
安装需要把这个文件的权限设置为 给.htacccess文件添加IIS_WPG账号的默认权限即可.
.htacccess文件写法:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^((.*).php|robots\.txt|statics|install)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
顺便提一下,关于伪静态、静态、动态的一些问题;
伪静态的缺陷/缺点:
-
CPU负载更高
由于伪静态是用正则判断而不是真实地址,分别显示哪个页面的责任也由直接指定转由CPU来判断了,所以CPU占有量的上升,确实是伪静态最大的弊病
-
网站承受力低
如果你的网站可以保证1000人同时访问的话,那么做了伪静态处理之后,300人访问就足以让你网站挂掉。
-
大量的重复页面
做了伪静态后,原有的页面也可以访问,这就造成了大量的伪静态页面和动态页面重复,对网站极为不好
-
需要服务器支持
并不是所有的服务器都支持伪静态的,这无形中又增加了成本。所以,如果网址中的动态参数没有达到影响搜索引擎收录的程度,动态要比伪静态好的多。
-
造成真正的静态网页无法访问
如果把php伪静态成html,那么真正的静态页就无法访问了。(可通过修改服务器配置解决,可是你又何必去费这把力气呢?
如何选择:
-
使用真静态和伪静态对SEO来说没有什么区别
-
使用真静态可能将导致硬盘损坏并将影响站点性能(这个实在是个谬论,非静态的对硬盘的读取次数胜过真静态)
-
使用伪静态将占用一定量的CPU占有率,大量使用将导致CPU超负荷
-
最重要的一点,我们要静态是为了SEO
-
真静态的访问速度明显比伪静态的访问速度要高
所以:
-
使用真静态的方法可以直接排除了,因为无论怎么生成,对硬盘来说都是很伤的。(这个完全是乱讲了,真静态可以提高网站的性能,减少数据库的访问压力,减少CPU和内存的压力。)
-
既然真伪静态的效果一样,我们就可以选择伪静态了。
-
但是伪静态大量使用会造成CPU超负荷。
-
所以我们只要不大量使用就可以了。
-
既然伪静态只是给搜索引擎爬虫看的,我们只需要伪静态给搜索引擎爬虫就行了,不需要给用户使用。
-
所以我们只要在专门提供给搜索引擎爬虫(搜索引擎机器人)爬的Archiver中使用伪静态就可以了。
-