日期:2014-05-16  浏览次数:20864 次

apache 伪静态测试使用
在学习apache或使用PHP处理伪静态前得先了解伪静态的特点和优点,去了...

述:看了一些文章伪静态无非就是可以让搜索引擎更好的收录。其实不论是真的还是伪的,其实对于搜索引擎来说

都是一样的,搜索引擎没有说,你这个是伪的,我不收录你.揪根掘底的来说,为什么搜索引擎会不收录带问号的网址

?因为搜索引擎怕由于问号而进入死循环(以前动网就有这样一个漏洞,蜘蛛进去出不来了),所以很多时候带问号的

地址是不会进去的,伪静态对于搜索引擎来说,其实就是静态,因为地址中没有带问号,所以没有真静态比伪静态收

录得多的说法.

首先当然是配置文件
第一步:要找到apache安装目录下的httpd.conf文件,在当中找到:
<Directory />
Options FollowSymLinks
AllowOverride none
</Directory>
将none改all,AllowOverride指令按类别决定了.htaccess文件中哪些指令才是有效的。如果一个指令允

许在.htaccess中使用,那么在本手册的说明中,此指令会有一个覆盖项段,其中说明了为使此指令生效而必须在

AllowOverride指令中设置的值。
<Directory 目录>这的目录应与DocumentRoot中的目录相同

第二步:找到以下内容
#LoadModule rewrite_module modules/mod_rewrite.so
将#号去掉,可使用httpd 应用程序查看rewrite_module模块是否载入(httpd -M)

OK配置成功,保存重启apache

测试基于.htaccess文件的功能:

在这我使用的的ErrorDocument 404 /error.php 进行测试。
[测试当中并没有出现想要的结果,而后我去查看error.log日志,当中显示的是以根目录/error.php的

地址,这也说明了配置成功。在根目录中新建error.php文件->测试时也没有成功的转向到error.php页面,配置

成功却没有转向是目录的问题??使用绝对地址http://www.****.com/error.php行了]


使用.htaccess文件的不足:

1、性能 AllowOverride启用了使用.htaccess文件,则apache需要在每个目录中查找.htaccess文件。因此会导致

性能下降。另外对每一个请求,都需要读取一次.htaccess文件,还有 apache必须在所有上级的目录中查

找.htaccess文件以使有效的指令都起作用,比如如果客户端请求/www/htdocs/help中的页面。服务器必须查找
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/help/.htaccess
四个额外文件(即使这些文件都不存在,当然你可以仅仅允许根目录使用.htaccess文件),也就是说目录深度越

深,则访问的额外文件越多,性能越低了。
2、安全
由于在/www/htdocs/help下面的.htaccess文件中放置指令与在主配置文件中<Directory /www/htdocs/help>中放

置相同的指令是完全等效的,这样允许用户自己修改服务器配置,
可能就会导致某些不愿意发生的意想不到的修改,这样就会造成服务器安全问题。这样你就必须考虑是否设置

AllowOverride None来完全禁用.htaccess文件。


使用:URL重写(简单)

RewriteEngine on
RewriteBase /
RewriteRule ^tt_([0-9]*).html$ test.php?id=$1 [R]

释:    RewriteEngine ,这是打开或关闭运行时的重写引擎
RewriteBase / ,这是设置指定路径的基准URL也就是[/test.php?id=$1]这样的
RewriteRule ,为重写引擎定义重写规则

注:我在使用时误解了RewriteBase的意思,以为在RewriteBule中的路径都是以/开始的,其实不然,在apache中

开启伪静态运行时,都会试图在不同的目录寻找.htaccess文件运行当中的规则。所以URL都是以.htaccess为基准

的。
如.htaccess放在根目录中伪静态是www.***.com/tt_11.html运行的,而被从写的URL是以RewriteBace为基准的

如.htaccess放在/user目录中伪静态是www.***.com/user/tt_11.html运行的


述:Rewrite apache重写技术的使用就不详说了,当然在使用前必须要会使用正则表达式,了解apache的基本配置

,从写规则可从apache参考手册学习,我也是从那里着手的。