关于.htaccess的诡异问题 (只有9行代码) 本帖最后由 vikinghetty 于 2012-07-16 15:17:48 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index\.php/$1 [QSA,PT,L]</IfModule>这样试试 RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]经测试,没有发现你说的现象! 十分感谢帮忙测试,正常情况的确不应该出现这种现象,所以称之为诡异……难道是我的Apache或PHP配置错误?可是这个查错范围太大了,不知道往什么地方入手,头大啊…… 发现一个重要线索,问题肯定就在这里:将.htaccess文件删除以后:运行:http://localhost/index/结果:直接载入了index.php(请问这是Apache还是PHP的设置?应该如何取消呢?) 本帖最后由 PhpNewnew 于 2012-07-16 20:23:51 编辑 谢谢回答先。但我的意思不是这个呀……运行:http://localhost/index/ (注意index目录不存在)我要的结果是:404 Not Found但是Apache居然自动跳转到index.php了。只有index会发生这种情况,愁呀…… apache 的404错误自定义页自己设置过吗?url重写有吗? 那你先检查 httpd.conf 中的 <IfModule mod_rewrite.c> 一节 没有自己设置过404页。不过图方便装的是Appserv(一键安装环境),然后修改vhosts.conf配置一些虚拟主机。删除.htaccess不重写也也是一样的情况。 诡异,不可能这个样子呀,你把别人安装好的.htaccess拷贝过来,测试一下,能不能跑起来,在自己修改为自己想要的效果,在测试,出问题再来问~~ 实际上的问题是,我的Apache默认开启了一个重定向(就算删除.htaccess文件也一样),如果index目录不存在,它就自动访问index.php文件。比如:http://localhost/index/当index目录不存在时,应该出现404 Not Found错误页面,但Apache却去自动找index.php了…… 经过无数次试验,最后问题终于自己解决了:搜索Apache配置文件httpd.conf中的下面这行,在开头加上“#”号注释掉即可,具体原因不明……Options Indexes FollowSymLinks MultiViews ExecCGI(这样的话,如果在MVC模式中写Controller时最好不要用index,因为无法保证每台机器上的Apache都关闭了此功能。)希望能给遇到同样问题的后来人带来帮助,少走弯路,特存案于此,以供搜索。最后:十分感谢楼上几位朋友对我无私热心的帮助,谢谢!好人好报,祝你们每天都开心快乐! 为何 上传的文件如果中文字多了就会报错? 求组php 控制播放器进度的问题 急!写一个注册页面,包括用户名和密码;注册的时候必须让密码输入12345才可以注册、然后入库。如果密码不是12345,就不入库返回一个错误提醒 请高手解决php问题,看了半天没看出问题 判断ip地址是不是外国的,在线等 php怎么将多张透明的PNG图叠加在一起生成新照并保存 我网页上的FLASH,不知道怎么插入图片,请大家指教一下!! 请问php网站的网页页面的一些问题 while循环结果集内,执行了一个正确的sql,while循环即被终止,不知道什么原因,求大虾 使用session 显示MYSQL数据乱码问题 用户登录基础(总跳出密码不能为空的提示栏)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index\.php/$1 [QSA,PT,L]
</IfModule>这样试试
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]经测试,没有发现你说的现象!
十分感谢帮忙测试,正常情况的确不应该出现这种现象,所以称之为诡异……难道是我的Apache或PHP配置错误?可是这个查错范围太大了,不知道往什么地方入手,头大啊……
结果:直接载入了index.php(请问这是Apache还是PHP的设置?应该如何取消呢?)
谢谢回答先。但我的意思不是这个呀……运行:http://localhost/index/ (注意index目录不存在)
我要的结果是:404 Not Found但是Apache居然自动跳转到index.php了。只有index会发生这种情况,愁呀……
url重写有吗?
没有自己设置过404页。不过图方便装的是Appserv(一键安装环境),然后修改vhosts.conf配置一些虚拟主机。删除.htaccess不重写也也是一样的情况。
实际上的问题是,我的Apache默认开启了一个重定向(就算删除.htaccess文件也一样),如果index目录不存在,它就自动访问index.php文件。比如:http://localhost/index/当index目录不存在时,应该出现404 Not Found错误页面,但Apache却去自动找index.php了……
(这样的话,如果在MVC模式中写Controller时最好不要用index,因为无法保证每台机器上的Apache都关闭了此功能。)希望能给遇到同样问题的后来人带来帮助,少走弯路,特存案于此,以供搜索。最后:十分感谢楼上几位朋友对我无私热心的帮助,谢谢!好人好报,祝你们每天都开心快乐!