在XAMPP (Windows 7)上,.htaccess文件无法正常工作

5

我现在正在设置我的.htaccess文件以使用友好URL(手动方式)。但是,当我访问这个URL时,服务器显示Error 404。

RewriteEngine on

RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f  

Rewriterule ^register$ register.php 

我非常确定 mod_rewrite 已经启用,因为在使用 phpinfo() 时我可以看到它。
4个回答

18

虽然mod-rewrite已启用,但默认情况下它不会对.htaccess文件启用。

紧张一下

  • 打开xampp控制面板
  • 停止Apache
  • 点击Apache行上的Config按钮,选择httpd.conf
  • 在该文件中,搜索类似于xampp/htdocs">的内容
  • 稍微往下查找,您可能会看到这样一行:# AllowOverride All。移除注释符号#
  • 或者,搜索AllowOverride All,确保它在正确的部分,并删除注释#
  • 保存文件
  • 重新启动Apache,祈祷、交叉手指和紧张一下

2
很高兴听到这个消息。一定是因为祷告起了作用。 :) :) 谢谢,下次再见! - zx81

1
这份清单可能比较旧,但仍然相关。为了增加一些安全性,最好添加几行代码。
Deny from all
Allow from 127.0.0.1 ::1 localhost
Allow from .htaccess

作为一个附带说明,.htaccess文件会减慢服务器的速度,因此最好参考xampp文档以获取最佳实践方法。
希望对您有所帮助。

1

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

如果我们想要从网址中删除index.php,首先需要在项目的根目录下创建一个没有扩展名的.htaccess文件。然后在该文件中添加以下代码以删除index.php。Application/config/config.php

感谢您提供这段代码片段,它可能会提供一些即时的帮助。通过展示为什么这是一个好的解决方案,一个适当的解释将极大地提高其长期价值,并使其对未来有其他类似问题的读者更有用。请[编辑]您的答案以添加一些解释,包括您所做出的假设。 - Virginia

0
请检查 httpd.conf 文件中的 标签,并查看该属性。
AllowOverride All

允许使用htaccess文件覆盖授权。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接