如何利用.htaccess文件对PHP网站或文件进行伪静态处理

如何利用.htaccess文件对PHP网站或文件进行伪静态处理,第1张

一、检查服务器是否支持伪静态处理:

必须要空间支持 Rewrite 以及对站点目录中有 .htaccess

文件解析,才有效.找到apache安装目录下的httpd.cof文件,去掉LoadModule rewrite_module

modules/mod_rewrite.so前面的#(大概在154行,我的默认是开启)

二、在httpd.cof中查找以下部分:

<Directory />

Options FollowSymLinks

AllowOverride None

</Directory>

改为:

<Directory />

Options FollowSymLinks

AllowOverride All

</Directory>

如果没有,手动添加。(PS:LZ试过,在最近的新版本的Apache上即使没有这个,.htaccess照样生效。但是不同服务器及版本的原因,建议加上)

三、重启apache服务器,添加.htaccess文件

建立.htaccess文件的方式:

1、保存文件的时候将文档保存成名为“***.txt”,再将其上传到服务器上,之后直接使用FTP软件来重命名为“.htaccess”。(适合windows)

2、保存文件的时候选择文件—>另存为,保存类型选所有文件,然后文件名输入.htaccess 。(适合windows)

3、直接在你的Unix或Linux虚拟主机上建立。

4、先用记事本编写好,随便保存为一个什么文件名,然后打开“命令提示符”(CMD),然后再用重命名命令(rename),例如:rename c:\htaccess.txt .htaccess

请注意: .htaccess必须,保存为ANSI 格式,以ASCII模式上传,最好将其权限设置为644。

一般我们将.htaccess文件放置在网站的根目录,控制所在目录及所有子目录,当然也可以放在网站的任何一个子目录下,但如果放置在子目录中,子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。

在博客收录集(http://www.ido321.com/1112.html)为例,本地.htaccess文件如下:

#rewriteengine为重写引擎开关on为开启off为关闭

RewriteEngine On

RewriteRule ^index\.html$ index.php

RewriteRule ^webmore\.html$ webmore.php

以index.html代替index.phpwebmore.html代替webmore.php。

.htaccess支持正则表达式,例如:

原始 news/detail.php?id=2 伪静态 news/detail_2.html

RewriteRule ^news/detail_([0-9]{1,})\.html$ news/detail.php?id=$1

慢?这个应该不至于吧,虽然理论上估计是会慢点。但这个我觉得就好像一天的时间,你浪费一秒这样的慢吧。是一种可以忽略的慢吧

php.ini 里设置与.htaccess中设置有什么不同?

实现的效果是一样的。

但.htaccess是分布式动态配置文件,也就是说你的配置如果写在.htaccess里,是会立刻生效。而不用重启用什么的。

支持 PHP 的虚拟主机基本都会支持 .htaccess 的。

从原理上说,支持 rewrite,不一定就支持.htaccess。

apache 的 httpd.conf 中如果有这样的设置

<Directory "/var/www">

AllowOverride all

... ...

</Directory>

.htaccess 就会有效。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/424425.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-26
下一篇2023-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存