[原创]用Apache的mod_rewrite模块隐藏.PHP扩展名

fzjw 2005-05-21 09:44:34
<VirtualHost *:80>
ServerAdmin webmaster@test.com
ServerName www.test.com
DocumentRoot /wwwroot/test/
DirectoryIndex index.php index.html
RewriteEngine on
#将所有*.php的文件扩展名去掉,剩下*.
RewriteRule ^(.*)\.$ $1\.php
</VirtualHost>

http://www.test.com/index.php?id=1
重写为
http://www.test.com/index.?id=1

如果
RewriteRule ^(.*)$ $1\.php
则可以通过http://www.test.com/index来访问index.php
我在Apache 1.3.33下测试,发现所有的CSS样式均不能显示,加上\.一切正常。
...全文
542 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
iasky 2005-05-26
  • 打赏
  • 举报
回复
mark
weq221 2005-05-26
  • 打赏
  • 举报
回复
mark
uuq 2005-05-26
  • 打赏
  • 举报
回复
重写在动态页面表现为静态作用比较大
把静态文件名转为动态
bflovesnow 2005-05-26
  • 打赏
  • 举报
回复
楼主写的有点太简单了,re_write 可以写很多东西.
google 上很多.
ice_berg16 2005-05-26
  • 打赏
  • 举报
回复
隐藏有什么好处?让他知道是PHP写的又怎么了?
fzjw 2005-05-26
  • 打赏
  • 举报
回复
可以实现index.php重写为index了,不用加点,CSS样式表也正常,作用只是隐藏扩展名
zairwolf 2005-05-26
  • 打赏
  • 举报
回复
或者改成index.exe。这样最好了。
zairwolf 2005-05-26
  • 打赏
  • 举报
回复
改成那样怪怪的。要改也是改成index.c或者index.bsp这样啦。
fzjw 2005-05-26
  • 打赏
  • 举报
回复
不用Google,看看Apache的手册rewrite部分,完全可以写出适合自己的规则

主要因为看到Google上大多隐藏扩展名的rewrite规则不能用,论坛也有朋友提过类似问题,自己看了看手册,动手写了很简单的一个规则
Meteorlet 2005-05-25
  • 打赏
  • 举报
回复
你这种规则太简单,别人加个php,asp,jsp就可以把后台的index.php试出来了
你的规则只是说可以用http://www.test.com/index.?id=1这种形式访问,
但是直接http://www.test.com/index.php?id=1还是可以访问的
一般都是把?后面的参数拿来一起用,隐藏变量id
mrshelly 2005-05-25
  • 打赏
  • 举报
回复
应该还要加一条规则。如果为 .css 文档,重写就结束。
fzjw 2005-05-25
  • 打赏
  • 举报
回复
LoadModule rewrite_module /modules/mod_rewrite.so

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)$ $1\.php
</IfModule>

这样配置就没问题,就是不要将rewrite规则写在虚拟主机中,CSS样式表问题也不再出现
surfchen 2005-05-21
  • 打赏
  • 举报
回复
我一般就是从根目录写,是可以的~ fzjw不行吗?
fzjw 2005-05-21
  • 打赏
  • 举报
回复
从根目录写也不行
www0aspsun0com 2005-05-21
  • 打赏
  • 举报
回复
我的习惯都是从根目录开始写,比如,<link href=/images/css.css rel=stylesheet type=text/css>,<IMG height=60 src=/images/6.gif width=39>,也rewrite过,就不出问题
indexroot 2005-05-21
  • 打赏
  • 举报
回复
顶!
fzjw 2005-05-21
  • 打赏
  • 举报
回复
我用的绝对路径
@import url(http://www.test.com/style/all.css);
www0aspsun0com 2005-05-21
  • 打赏
  • 举报
回复
HTML认为现在访问的文件是http://www.test.com/index/index.html,所以基于这一点,“事实上”你是连接位于上级目录的CSS,不光这个,比如你的图片都放在根目录下的IMG文件夹中,你在这个页面引用也要换成<img src=../img/1.gif>才可以用,其他引用JS,iframe等都是一样,要../
www0aspsun0com 2005-05-21
  • 打赏
  • 举报
回复
外部链接的CSS样式文件无法正常显示,不知何故?
<style type="text/css" media="all">
@import url(../style.css);
</style>
这样就是对的,HTML才不管你是不是rewrite了,她认为现在的目录不是根目录而是index目录
fzjw 2005-05-21
  • 打赏
  • 举报
回复
RewriteRule ^(.*)$ $1\.php
CSS不正常的原因找到了

如果CSS文件是外部文件,无法正常显示
如果在当前页面中,可以正常显示
<style type="text/css" media="all">
h1 {
color: #C00;
font-size: 20pt;
}
</style>

外部链接的CSS样式文件无法正常显示,不知何故?
<style type="text/css" media="all">
@import url(style.css);
</style>

加载更多回复(2)
本系列视频教程主讲:CSDN 灯塔微光。本系列视频教程主要涉及领域:高职院校技能大赛网络系统管理赛项的Debian操作系统模块-------Nginx知识点的基础理论和赛题解答。本系列视频教程的目的:为了帮助参赛选手解决Debian模块中Nginx知识点的答题困扰。本视频教程目录如下:一、Nginx web服务器理论介绍      二、Nginx与apache的对比      三、实战1:在Debian操作系统上源码编译安装Nginx四、实战2:在Debian操作系统上自动化安装Nginx                       五、实战3:Server模块与location模块讲解六、实战4:基于Nginx静态部署PHP网站                                      七、实战5:Nginx Web安全认证模块应用八、实战6:rewrite 实现网站跳转                                                 九、实战7:Nginx反向代理十、实战8:Nginx负载均衡                                                           十一、Https安全理论介绍十二、实战9:Nginx的https配置实现                                         十三、2021年全国职业院校技能大赛模块A:Linux环境(样题六)nginx赛题讲解十四、2021年全国职业院校技能大赛模块A:Linux环境(样题七)nginx赛题讲解十五、2021年全国职业院校技能大赛模块A:Linux环境(样题八)nginx赛题讲解

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧