问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

apache 伪静态如何隐藏index.php?

发布网友 发布时间:2022-04-06 03:58

我来回答

2个回答

热心网友 时间:2022-04-06 05:28

Apache伪静态配置方法有两种:

在网站根目录下添加文件,.htaccess,在此文件内写伪静态规则,使用它需要在apache配置文件http.conf中完成相应配置.具体配置方法网上很多,这里不再赘述.

而另一种是直接在httpd.conf中使用.这种方法性能高于前者。

应用场景

(1),采用.htaccess的场景

用户需要针对特定目录改变服务器的配置而又没有root权限的情况下,可以通过.htaccess文件实现。

如果服务器管理员不愿意频繁修改配置,则可 以允许用户通过.htaccess文件自己修改配置. 比如ISP,在同一个机器上运行了多个用户站点,希望用户可以自

己改变配置,便可以配置好apache,开启对.htaccess文件的支持即可.

(2),不采用.htaccess的场景

虽然上述步骤1可以实现,但一般都应该尽可能地避免使用.htaccess文件。任何希望放在.htaccess文件中的配置,都可以放在主配置文件(http.conf)的段中,而且更高效。

(3)避免使用.htaccess文件有两个主要原因

首先是性能。如果AllowOverride启用了.htaccess文件,则Apache需要在每个目录中查找.htaccess文件,因此,无论是否真正用到,启用.htaccess都会导致

性能的下降。另外,对每一个请求,都需要读取一次.htaccess文件。

还有,Apache必须在所有上级的目录中查找.htaccess文件,以使所有有效的指令都起作用,所以,如果请求/www/htdocs/example中的页面,Apache必须查找以下文件:

/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess

总共要访问4个额外的文件,即使这些文件都不存在。(注意,这可能仅仅由于允许根目录”/”使用.htaccess ,虽然这种情况并不多。)

其次是安全。这样会允许用户自己修改服务器的配置,这可能会导致某些意想不到的修改,所以请认真考虑是否应当给予用户这样的特权。但是,如果给予用

户较少 的特权而不能满足其需要,则会带来额外的技术支持请求,所以,必须明确地告诉用户已经给予他们的权限,说明AllowOverride设置的值,并引导他

们参阅相应的说明,以免日后生出许多麻烦。

注意,在/www/htdocs/example目录下的.htaccess文件中放置指令,与在主配置文件中段中放置相同指令,是完全等效的。

总结

由上我们可以知道,使用.htaccess文件具有性能上的不利之处,所以我们应该尽可能避免使用.htaccess文件,下面介绍一种不使用.htaccess文件进行伪静态

的方法:

Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下两段代码:
LoadMole rewrite_mole libexec/mod_rewrite.so
AddMole mod_rewrite.c

Apache 2.x 的用户请检查 conf/httpd.conf 中是否存在如下一段代码:
LoadMole rewrite_mole moles/mod_rewrite.so
如果存在,且以#开头,请删除#。然后在配置文件(通常就是 conf/httpd.conf或者conf/extra/httpd-vhosts.conf)中加入如下代码。此时请务必注意,如果网

站使用通过虚拟主机来定义,请务必加到虚拟主机配置段 中去,如果加在虚拟主机配置外部将可能无法使用。改好后然后将 Apache 重启。



①.在apache配置文件httpd.conf中找到:

LoadMole rewrite_mole moles/mod_rewrite.so
这句,去掉前边的注释符号“#”,如果没有则添加这句。

②.在代码:

Options FollowSymLinks
AllowOverride None
下面添加伪静态代码(以Wordpress伪静态为例):

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
其中/usr/local/apache/htdocs/wwwtest即为要进行伪静态的网站的根目录

③.重启apache

热心网友 时间:2022-04-06 06:46

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
顺风车司机独享订单时能接别人的单吗 顺风车独享是什么意思啊? 如何将电脑上的视频传输到苹果手机简单步骤让你随时随地观看电脑上的视... 电脑视频怎么传到苹果手机电脑里的照片和视频怎样传到苹果手机上 吃随便果得肠癌的案例是真的吗-随便果对身体是否有害 一个分数的分子扩大2倍,分母缩小到原来的2分之一,这个分数就扩大到原... ...分母缩小到原来的二分之一后等于二又五分之四,这个分数是多少... 一个最简分数,把它的分子扩大2倍,分母缩小3倍,就得3/5,这个最简分数是... 一个最简分数,把他的分子扩大2倍,分母缩小为原来的五分之四,这个... 一个最简分数的分子扩大2倍,分母缩小3倍得到6分之5,这个最简分数是多少... IIS下 thinkphp 默认访问index.html 同时隐藏index.php 使用域名打开网站 如何隐藏index.html 能在iis服务器中去掉url中的index.php吗? 求IIS6 隐藏index.php的方法 jquery+php+mysql 如何提交后不转页局部刷新? thinkphp提交数据后怎么不刷新页面情况更新信息 php 点击按钮提交后提交到PHP页面,并且此数据消失,本页面不刷新 提交表单的时候大家有什么防止用户刷新重复提交的方法 - PHP进阶讨论 PHP用JS 提交表单 提交到当前页面但是不刷新当前页面 有什么办法? 最好给出代码!~ 如何在不刷新php页面的情况下,用php执行一些数据库操作 PHP不刷新提交数据,求大神帮写hello.php代码 php怎样防止刷新重复提交? PHP怎么避免在登录后的页面中刷新时重新提交表单?怎么让服务器记住当前用户的登录状态啊? php问题求助,Notice: Undefined offset: 1 ,我的数组下标没有越界啊?为什么会有这样的提示呢? php 怎么清理 apache缓存 php关闭页面而不关闭浏览器怎样清除cookie 关于PHP销毁缓存里的变量并且重新载入页面的操作 php清除缓存的代码,应该怎么写? 指导一下,谢谢! 有代码展示的更好,多谢了 PHP如何清理网站缓存 linux php pdo mysql 需要安装mysql吗 如何让首页不显示index.php 在IIS 8.5的URL重写功能隐藏index.aspx文件 php将XML转换成字符串! php中将xml文件读入一个字符串 php 如何解析xml格式字符串 用php怎么更改xml文件的内容 php如何通过xml传递数据 PHP中如何载入xml的字符串?请注意,不是xml文件,而是通过网络传输回来的xml数组。 php xml-rpc怎么实现,数据怎么传到服务器端的? PHP 怎么把一个XML节点字符串直接插入到XML中啊? 求教各位大神 php解析xml字符串 如何用php给XML字符串的子节点添加属性 安装win7出现0x0000007b,怎么解决? 错误代码0x0000007b 电脑启动蓝屏0x0000007b怎么解决 电脑开机时出现0xc000000f的问题,不能开机,也没有光盘,怎么办? 电脑开机时出现0xc000000f、不能开机、也没有光盘,怎么办? 开机出现状态:0xc000000f 什么解决? win7开机显示0xc000000f怎么办? 电脑开机蓝屏错误0X000000E0是怎么回事