有人能发现我在这里做错了什么吗?我收到内部服务器错误,当我查看 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