LNMP下Nginx中文文件名或目录404无法访问的解决方法
VPS论坛里已经说过设置方法,不过貌似很多人还是会遇到中文乱码的问题,Apache可以使用mod_encoding支持中文目录和文件,LNMP下Nginx其实不需要安装额外的组件即可支持中文文件名或中文目录,下面说一下常见的CentOS、Debian、Ubuntu Linux发行版下的设置方法和可能会遇到的问题:
设置前可以执【kě yǐ zhí】👠行【háng】:locale 看一下🏈,如果显🌼示是☔en_US.UTF-8,即是正常,不用按【bú yòng àn】下面的步骤设【bù zhòu shè】置。如果显🌼示其他【shì qí tā】🍄编码需要按如🔡下步骤【xià bù zhòu】设置。
CentOS:
编辑🚽/etc/sysconfig/i18n 文件😎,内容修改为📭:(可以使【kě yǐ shǐ】🐏用【yòng】vi、nano或【huò】winscp图形管理软件,依个人口味选择【zé】)
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
保存,重启系统。
Debian:
apt-get install -y locales
dpkg-reconfigure locales
执行🐗 dpkg-reconfigure locales后会出现如下【xiàn rú xià】对话框【duì huà kuàng】⛏:
用向下【yòng xiàng xià】🛁的方向🆒键找到【jiàn zhǎo dào】en_US.UTF-8 UTF-8,按空格选择,再按回【zài àn huí】🚯车键。
再按向🏀下键选🗞择en_US.UTF-8,再按回🦎车键确【chē jiàn què】认【rèn】。
重启系统【tǒng】。
Ubuntu:
编辑【biān jí】🛒/etc/default/locale 文件🧢,修改内容为【róng wéi】(没有的话创建一个🚣):
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
保存【bǎo cún】,再执行:locale-gen en_US en_US.UTF-8
重启系【chóng qǐ xì】📙统。
执行【zhí háng】🏰:locale 看一下是否显【shì fǒu xiǎn】♌示是🔂en_US.UTF-8,如果报错【cuò】,请在本文反馈。
按以上♏步骤设【bù zhòu shè】置好后🈷即可支持中文【chí zhōng wén】,可以上【kě yǐ shàng】传中文的文件或中文🔢的目录。
可能会遇到的问题:
如果使用Winscp或🕶Flashfxp之类的工具上【gōng jù shàng】传都要【chuán dōu yào】设置为😥utf-8才可以【cái kě yǐ】,设置步骤如下🎯:
WinSCP:
- 打开WinSCP,在登录界面中选定要登录的会话
- 点击旁【diǎn jī páng】边的"编辑🚁"按钮【àn niǔ】😑
- 在左侧【zài zuǒ cè】树型菜⛏单中找到【dào】"环境【huán jìng】🌐"项,并打开🛢它
- 在右侧⏳中一项为"文件名【wén jiàn míng】🍆UTF-8编码",选择【xuǎn zé】"开启【kāi qǐ】",设置完成🌕。
FlashFXP:
- 打开FlashFXP,点"站点",选择"站点管理器"
- 点【diǎn】击选🐱择要登陆的站【lù de zhàn】点【diǎn】,在右侧【zài yòu cè】🏛点【diǎn】击"选项"选项卡🔋,"字符编码🍴" 后面的【hòu miàn de】列表框里选择UTF-8,设置完成【chéng】🥏。
如果在Putty或XShell等SSH客户端下显示乱码,也是需要修改字符编码为UTF-8的。
Putty:
- 打开Putty,在登录会话界面中选定Default Settings
- 再点【zài diǎn】📋击左侧树形菜单中的"Window",再点【zài diǎn】📋"Translation",中文版的话对㊗应的是【yīng de shì】🗨"窗口【chuāng kǒu】","转换"
- 在右侧界面中有一项"Remote character set:",中文版【zhōng wén bǎn】🛏的是"假定接【jiǎ dìng jiē】😾收数据♓的字符集🍥",在下拉✴列表中【liè biǎo zhōng】选择【xuǎn zé】"UTF-8",设置完【shè zhì wán】成。
XShell:
- 打开XShell,在会话列表要登录的会话上右击,选择"Properties"
- 在【zài】点击🐃"Terminal",在【zài】Translation里有个【lǐ yǒu gè】Encoding的下拉列表框【liè biǎo kuàng】,选择🎙"UTF-8",设置完成📈,简单点的设置方法,直接点【zhí jiē diǎn】😠上面工具栏里🔍面的蓝【miàn de lán】绿色的圆球【yuán qiú】,选择🎙"UTF-8"。
说了这😊么多,其实就【qí shí jiù】是一点,编码一【biān mǎ yī】致,编码不一致就会出现【huì chū xiàn】🚪乱码🚨。
如果是在没有📜更改编🧜码前上传的文件🤭,设置好【shè zhì hǎo】后依然【hòu yī rán】会是乱码的♟,建议重新上传一下文【yī xià wén】件🤭。如果没【rú guǒ méi】有原来【yǒu yuán lái】📖文件🤭的备份【de bèi fèn】可以使用下面命【mìng】🈴令进行转换💁:for f in `ls *.html` ; do mv $f `ls $f|iconv -f GBK -t UTF-8`; done 。
其中【qí zhōng】*.html为要转换的文【huàn de wén】📱件类型,也可以更换为🤹*.txt,*.rar 主要是【zhǔ yào shì】看你是什么文【shí me wén】件了📓,里面的【lǐ miàn de】🦎GBK为源文件的编码类🌱型,如果不【rú guǒ bú】知道源文件的编码类🌱型可以💎执行【zhí háng】💱:file -bi 文件名 。
如果想【rú guǒ xiǎng】🍴在【zài】Windows下改的话其实✨也是可以的♎Editplus就有批量修改【liàng xiū gǎi】文件编【wén jiàn biān】🐕码的功能【néng】🖱,其他的软件可能【néng】🖱也有此类功能【néng】🖱,可以自行研究一下🎅。
如果是目录的话【huà】,目前好像是没🌽有办法🌠进行转【jìn háng zhuǎn】换【huàn】🧙。
还有一个问题🕧,如果是✍html之类的【de】🍇网页文件,如果原来是网【lái shì wǎng】😘页内容【yè nèi róng】是🚄gb2312或类似的【de】🍇非【fēi】utf-8的【de】🍇编码【biān mǎ】,先要将网页里⛲面的【de】📖charset 改为🚊charset=utf-8,再转换【zài zhuǎn huàn】文件编码【biān mǎ】,否则网【fǒu zé wǎng】页还是🚄会乱码的【de】🍇。
关键词:LNMP,Nginx
阅读本文后您有什么感想? 已有 人给出评价!
- 1
- 1
- 1
- 1
- 1
- 1