关于.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函数内执行AJAX请求 记录用户的访问次数的访问统计 php 求教如何将一数组写入文件aa.txt,而后怎样读取aa.txt文件到一数组? 付费求一段php代码,支持淘宝交易 表中如果已经有了唯一索引,还要主键吗 表单提交问题 小代码问题? 200分求关于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都关闭了此功能。)希望能给遇到同样问题的后来人带来帮助,少走弯路,特存案于此,以供搜索。最后:十分感谢楼上几位朋友对我无私热心的帮助,谢谢!好人好报,祝你们每天都开心快乐!