作为标题,我的.htaccess文件出现问题,一切都应该设置好,但是我写了一些基本的东西
RewriteEngine on
它开始给我那个不错的500内部服务器错误。我在Apache服务器(UNIX)上的localhost上托管
显然我三重检查一切都设置得很好,并且最重要的是加载了mod_rewrite。
感谢您的宝贵帮助!
答案 0 :(得分:5)
如果每个类型的指令都放在文件中(即缓存,FilesMatch
,ErrorDocument
等),则有两种可能我现在能想到的选择:
.htaccess
文件的编码与您正在运行的服务器不兼容。尝试将其转换为ANSI,然后再试一次(Apache不支持Byte Order Marks,因此您需要将其保存为ANSI或UTF-8,而不使用BOM。如果这不起作用:
AllowOverride
设置不正确,或者根本没有设置。如果您有权访问虚拟主机/目录配置,则需要通过在AllowOverride All
容器中添加行<Directory>
来启用它。
答案 1 :(得分:0)
当您尝试删除代码RewriteEngine on
并且URL重新映射或URL重定向仍然运行良好时,您不必将该代码放在.htaccess
文件中,用于HTTP服务器已配置重写引擎已打开。但是,如果您尝试删除它并重写或重定向停止,那么您必须在问题中包含所有.htaccess
代码。然后,如果它是空的,那么如果你不打算申请一个RewriteEngine on
,为什么你需要转动RewriteRule
?
你有没有试过这个:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^notexist.html$ /index.html
如果网址重新映射到 /index.html ,请尝试访问 yourdomain.com/notexist.html 。