gpt4 book ai didi

linux - 在 Linux 上使用此 .htaccess 获取错误 500,在 Windows 上工作正常

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:26:09 32 4
gpt4 key购买 nike

我在 Windows 上使用 XAMPP,在 Linux (Ubuntu) 上使用 LAMPP 在本地使用 PHP 进行开发。我的 .htaccess 文件中有这个:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

如您所见,我不想输入以 HTML 或 PHP 结尾的文件扩展名。我的两个 .htaccess 包含相同的上述内容。

令人惊讶的是,当我在 Ubuntu 上请求任何文件(或目录)时(即使有完整的扩展名),我得到了 Error 500。如果我删除这个 .htaccess,一切都会好起来的。

在 Windows 上一切都按预期工作。

有什么问题?

最佳答案

The last line is:
[Thu Sep 06 20:14:25 2012] [alert] [client 127.0.0.1] /opt/lampp/htdocs/.htaccess: Invalid command '\xef\xbb\xbfRewriteEngine', perhaps misspelled or defined by a module not included in the server configuration

那些字符 (\xef\xbb\xbf) 是 unicode byte order mark对于 UTF-8 和 apache 认为它是垃圾字符(至少在 linux 上)。在 Windows 中,此 BOM 用于让 Windows 知道该文件被编码为 UTF-8,而不是任何默认的 Windows 文本文件使用(我认为它是 UTF-16,小端)。你只需要去使用你最喜欢的 linux 文本编辑器,并删除那些字符。根据您使用的编辑器,它们甚至可能不会显示,因此您可能需要执行类似“从 RewriteEngine 到行首的单词末尾进行选择,然后删除选择,然后,从行的开头,只需手动键入 RewriteEngine

删除 BOM 后将 htaccess 文件移回 Windows 后,htaccess 文件有可能无法正常工作,我不太确定。

关于linux - 在 Linux 上使用此 .htaccess 获取错误 500,在 Windows 上工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12299684/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com