Apache 内部服务器错误 - .htaccess:RewriteCond:错误的标志分隔符

Apache 内部服务器错误 - .htaccess:RewriteCond:错误的标志分隔符

有人能发现我在这里做错了什么吗?我收到内部服务器错误,当我查看 apache 日志时,我得到了:“.htaccess:RewriteCond:坏标志分隔符”

所以问题一定依赖于.htaccess 文件......

有人能帮我找出我在这里遗漏的东西吗?

多谢。

#already active, still:
Options +FollowSymlinks

#With this definition, our application.ini will be set as development
SetEnv APPLICATION_ENV development

#to allow redirection
RewriteEngine On

#avoid hotlinking
RewriteCond %{HTTP_REFERER} !^$ [OR]
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?site\.dev [NC,OR]
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?site\.something\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

#if the request is a file or a directory or any other condition, do not redirect  (1st rule), otherwise,  rewrite to index (2nd rule).
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L]

答案1

.htaccess 没有错误。

无法证明这一点,但该问题可能与复制粘贴问题有关,因为我是从 Open Office 文档中复制的,也许一些不可见的(对 gedit 而言)字符已经传递,而 apache 不喜欢它。

无论如何,我已经使用了完全相同的 .htaccess 文件,但是通过直接在 gedit 上写入,它就起作用了。

--

Unix 和 Linux 使用 LF(换行符),而 DOS/Windows 使用 CR/LF(回车符/换行符)。您可以使用诸如“文件”之类的命令 - 您可以接收:“ASCII 文本”,然后行尾是 Unix 或“带有 CRLF 行终止符”,然后是 Windows

相关内容