将.htaccess与RewriteEngine一起使用时出现500内部服务器错误

Jos*_*osh 28 .htaccess mod-rewrite

我在共享主机Bounceweb上,我正在尝试添加一些重写规则,以使我的链接看起来更漂亮.

其中一条规则是使url:http://mysite.com/upload指向:http://mysite.com/upload.php.我在.htaccess文件中有这个:

RewriteEngine on
RewriteRule ^upload$ upload.php
Run Code Online (Sandbox Code Playgroud)

但它给我的全部是500内部服务器错误.我查看了我的日志,这出现了很多:

[alert] [client 81.179.29.185] /home/minecraf/public_html/.htaccess: Invalid command '\xef\xbb\xbfRewriteEngine', perhaps misspelled or defined by a module not included in the server configuration
Run Code Online (Sandbox Code Playgroud)

这是否意味着我的主人不支持.htaccess?如果不这样做,那就太蹩脚了.我已经尝试将.htaccess的权限更改为777,但它没有帮助.

谢谢!

nit*_*k01 46

\xef\xbb\xbf是三个不可见的垃圾字符(至少从Apache的角度来看)称为Unicode BOM或字节顺序标记.Apache认为这些字符是紧随其后的命令的一部分.这是你在日志中看到的,虽然字符被转义所以它们肉眼可见.\xef\xbb\xbfRewriteEngine

在您的编辑器中,特别是如果您的编辑器是记事本,请确保在没有BOM的情况下保存文件.这应该可以在另存为对话框或其他位置选择.

  • 啊,我明白了.我使用我的FTP客户端自己的编辑器来执行.htaccess,这可能就是为什么会发生这种情况.只是用记事本做了,现在一切都很好,谢谢:) (2认同)
  • 你刚刚救了我的命!我不明白为什么我的重写总是出现 500 错误:) 将它保存为 Asci,它就像一个魅力 (2认同)

Mo *_*ami 20

在某些情况下,可能没有加载apache中的mod_rewrite模块.检查您的apache配置.

更新:

Windows xampp:打开xampp/apache/conf/httpd.conf并取消注释mod_rewrite模块.
Windows wamp:打开wamp/bin/apache/Apache2.x.x/conf/httpd.conf并取消注释mod_rewrite模块.
Ubuntu:输入终端:a2enmod rewrite
Ubuntu手册:cp /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
然后重新加载apache
Ubuntu: service apache2 reload OR service apache2 restart
Windows:来自xampp或wamp控制面板.


小智 10

试试这个:

a2enmod rewrite    
/etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)


ap2*_*ap2 7

要在unix中删除BOM,请使用vi及以下命令

:设置nobomb

:wq