したがって、次のファイルAdán-y-Eva-50x50.jpg
にアクセスしようとすると、ApacheはそれをAd\xc3\xa1n-y-Eva-50x50.jpg
に変換し、存在していても見つかりません。
これは、UTF8文字を含むファイル名でのみ発生します。
私の/etc/httpd/conf/httpd.conf
には、すでに次の設定があります
...
AddDefaultCharset UTF-8
...
IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable +Charset=UTF-8
...
そして、これも最初の行の私のルート.htaccess
に追加しました:
IndexOptions +Charset=UTF-8
これらすべては、これらの種類のファイルをロードする効果はありません。助言がありますか?
ちょうどそれを言及する:私はpleskパネルが事前設定されたCentOSサーバーでウェブサイトを実行しています
ここでの問題は、ブラウザにもApacheの構成にもありません。システムのロケール設定を再確認する必要があります。
Apacheが実行されているロケールでUTF-8が有効になっているかどうかを確認する必要があります。そのためには、次のコマンドを実行します。
$ Sudo su -l -c locale www-data
ここで、www-data
はApacheユーザーです。返されたロケールがes_ES.UTF-8
のようになっていないかどうかを確認します。これは、ロケールでUTF-8が有効になっていないことを意味します。
この場合、CentOSマシンの/etc/sysconfig/i18n
でこの構成を変更し、行LANG="es_ES"
をLANG="es_ES.UTF-8"
に変更できます。ただし、これが機能するためには、システムにこの言語のロケールファイルが必要です。存在するかどうかを確認するには、locale -a
を使用して、利用可能なロケールのリストを取得します。
システムにUTF-8対応のロケールがない場合は、次のコマンドを使用してロケールを生成できます。
$ Sudo localedef -i es_ES -f UTF-8 es_ES.utf8
デフォルトの言語として設定します。
この助けを願っています!
Fboaventuraの答えに加えて
Apacheが実行されているロケールを確認します
$ Sudo su -l -c locale www-data
変更するためにi18n
構成/etc/sysconfig/i18n
:
CentOSシステム構成ディレクトリに移動します
$ cd /etc/sysconfig
言語設定ファイルのバックアップコピーを作成します
$ cp i18n i18n.backup
nanoを使用して言語設定ファイルを編集します
$ nano i18n
構成を含めるようにファイルを編集します
例えば:
LANG="en_US.utf8"
SYSFONT="latarcyrheb-Sun16"
SUPPORTED="en_US.utf8:en_US:en:fr_FR.utf8:fr_FR:fr :es_ES.utf8:es_ES:es:de_DE.utf8:de_DE:de:sv_SE.utf 8:sv_SE:sv:zh_CN.utf8:
zh_CN:zh:zh_TW.utf8:zh_TW:zh:ja_JP.utf8:ja_JP:ja:k o_KR.utf8:ko_KR:ko"
ファイルを保存してシステムを再起動します。
その他のリソース