欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

apache 伪静态测试使用

程序员文章站 2022-05-25 18:34:15
...
在学习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参考手册学习,我也是从那里着手的。