我正在尝试为 xampp 在 apache 上启用 mod 重写,我已取消注释代码
LoadModule rewrite_module modules/mod_rewrite.so
我也有 AllowOverride All ,但它仍然无法正常工作,
我收到错误 400,上面写着
错误的请求!
您的浏览器(或代理)发送了此服务器无法理解的请求。
所以我尝试安装其中包含 apache 的 zend 服务器社区版,我做了以下所有操作并且 url 重写工作,但这次 web 应用程序中的公共文件夹隐藏在 apache 中,当我尝试复制内容时的公用文件夹并在根目录中访问它我收到错误500,它说
内部服务器错误
服务器遇到内部错误或配置错误,无法完成您的请求。
如果有人可以帮助我设置其中之一,我将不胜感激,我正在尝试使用 zend 框架。
谢谢
.htaccess
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
php_flag short_open_tags on
阿帕奇错误日志:
请求 GET /webfolder/zf-tutorial/public/index/add HTTP/1.1 中的 URI 无效,引用者: http://localhost/webfolder/zf-tutorial/public/
更新:我将 web 应用程序移动到 apache 中的 htdocs 并且现在一切正常,我之前将根目录指向以下目录
Alias /webfolder/ "C:/Users/Amir/Documents/webfolder/"
Alias /webfolder "C:/Users/Amir/Documents/webfolder"
任何想法为什么它以前不起作用。谢谢
AllowOverride 启用 .htaccess 文件。我的猜测是您的网站路径中有一个错误的 .htaccess。
如果您在 .htaccess 文件中有一些无效的语法,您将收到服务器 500 错误。
打开重写也是不够的,您必须将 RewriteEngine On 添加到您的虚拟主机或 .htaccess 文件中,然后按照您的重写规则进行操作
直流
您的重写规则相互冲突且顺序错误。所有重写规则必须在RewriteEngine 指令之后。
丢失第一行,并从上一个 RewriteRule 中删除相对路径:
这个 .htaccess 应该在你的 public/ 目录中。
请参阅手册。向它抛出更多 RewriteRules 不是解决方案。