<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>深度VPS &#187; 404</title>
	<atom:link href="http://www.deepvps.com/tag/404/feed" rel="self" type="application/rss+xml" />
	<link>http://www.deepvps.com</link>
	<description>专注VPS技术，关注前端技术</description>
	<lastBuildDate>Sat, 04 Feb 2023 14:00:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>LNMP下Nginx 中文文件名或目录404无法访问的解决方法</title>
		<link>http://www.deepvps.com/lnmp-nginx-chinese-filename-directory.html</link>
		<comments>http://www.deepvps.com/lnmp-nginx-chinese-filename-directory.html#comments</comments>
		<pubDate>Fri, 25 Jan 2013 05:39:42 +0000</pubDate>
		<dc:creator>deepvps</dc:creator>
				<category><![CDATA[VPS管理维护]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[LNMP]]></category>
		<category><![CDATA[中文文件名]]></category>

		<guid isPermaLink="false">http://www.deepvps.com/?p=1264</guid>
		<description><![CDATA[
这个问题已经说过很多次，不过貌似很多人还是会遇到中文乱码的问题，Apache可以使用mod_encoding支持中文目录和文件，LNMP下Nginx其实不需要安装额外的组件即可支持中文文件名或中文目录，下面说一下常见的CentOS、Debian、Ubuntu Linux发行版下的设置方法和可能会遇到的问题：
设置前可以执行：locale 看一下，如果显示是en_US.UTF-8，即是正常，不用按下面的步骤设置。如果显示其他编码需要按如下步骤设置。
CentOS：
编辑/etc/sysconfig/i18n 文件，内容修改为：
LANG=&#8221;en_US.UTF-8&#8243;
SYSFONT=&#8221;latarcyrheb-sun16&#8243;
保存，重启系统。
Debian：
apt-get install -y locales
dpkg-reconfigure locales
执行 dpkg-reconfigure locales后会出现如下对话框：

用向下的方向键找到en_US.UTF-8 UTF-8，按空格选择，再按回车键。

再按向下键选择en_US.UTF-8，再按回车键确认。
重启系统。
Ubuntu：
编辑/etc/default/locale 文件，修改内容为(没有的话创建一个)：
LANG=&#8221;en_US.UTF-8&#8243;
LANGUAGE=&#8221;en_US:en&#8221;
保存，再执行：locale-gen en_US en_US.UTF-8
重启系统。
执行：locale 看一下是否显示是en_US.UTF-8，如果报错，请在本文反馈。
按以上步骤设置好后即可支持中文，可以上传中文的文件或中文的目录。
可能会遇到的问题：
如果使用Winscp或Flashfxp之类的工具上传都要设置为utf-8才可以，设置步骤如下：
WinSCP:

打开WinSCP，在登录界面中选定要登录的会话
点击旁边的&#8221;编辑&#8221;按钮
在左侧树型菜单中找到&#8221;环境&#8221;项，并打开它
在右侧中一项为&#8221;文件名UTF-8编码&#8221;，选择&#8221;开启&#8221;，设置完成。

FlashFXP：

打开FlashFXP，点&#8221;站点&#8221;，选择&#8221;站点管理器&#8221;
点击选择要登陆的站点，在右侧点击&#8221;选项&#8221;选项卡，&#8221;字符编码&#8221; 后面的列表框里选择UTF-8，设置完成。

如果在Putty或XShell等SSH客户端下显示乱码，也是需要修改字符编码为UTF-8的。
Putty：

打开Putty，在登录会话界面中选定Default Settings
再点击左侧树形菜单中的&#8221;Window&#8221;，再点&#8221;Translation&#8221;，中文版的话对应的是&#8221;窗口&#8221;，&#8221;转换&#8221;
在右侧界面中有一项&#8221;Remote character set:&#8221;，中文版的是&#8221;假定接收数据的字符集&#8221;，在下拉列表中选择&#8221;UTF-8&#8243;，设置完成。

XShell：

打开XShell，在会话列表要登录的会话上右击，选择&#8221;Properties&#8221;
在点击&#8221;Terminal&#8221;，在Translation里有个Encoding的下拉列表框，选择&#8221;UTF-8&#8243;，设置完成，简单点的设置方法，直接点上面工具栏里面的蓝绿色的圆球，选择&#8221;UTF-8&#8243;。

说了这么多，其实就是一点，编码一致，编码不一致就会出现乱码。
如果是在没有更改编码前上传的文件，设置好后依然会是乱码的，建议重新上传一下文件。如果没有原来文件的备份可以使用下面命令进行转换：for f in `ls *.html` ; do mv $f `ls $f&#124;iconv -f GBK -t UTF-8`; done 。
其中*.html为要转换的文件类型，也可以更换为*.txt，*.rar 主要是看你是什么文件了，里面的GBK为源文件的编码类型，如果不知道源文件的编码类型可以执行：file -bi 文件名 。
如果想在Windows下改的话其实也是可以的Editplus就有批量修改文件编码的功能，其他的软件可能也有此类功能，可以自行研究一下。
如果是目录的话，目前好像是没有办法进行转换。
还有一个问题，如果是html之类的网页文件，如果原来是网页内容是gb2312或类似的非utf-8的编码，先要将网页里面的charset 改为charset=utf-8，再转换文件编码，否则网页还是会乱码的。
]]></description>
			<content:encoded><![CDATA[<p><img title="zhongwen" src="http://www.deepvps.com/wp-content/uploads/auto_save_image/2013/01/133943OFd.jpg" alt="" width="141" height="69" /></a></p>
<p>这个问题已经说过很多次，不过貌似很多人还是会遇到中文乱码的问题，Apache可以使用mod_encoding支持中文目录和文件，LNMP下Nginx其实不需要安装额外的组件即可支持中文文件名或中文目录，下面说一下常见的CentOS、Debian、Ubuntu Linux发行版下的设置方法和可能会遇到的问题：</p>
<p>设置前可以执行：<strong>locale</strong> 看一下，如果显示是en_US.UTF-8，即是正常，不用按下面的步骤设置。如果显示其他编码需要按如下步骤设置。</p>
<h3>CentOS：</h3>
<p>编辑/etc/sysconfig/i18n 文件，内容修改为：<br />
LANG=&#8221;en_US.UTF-8&#8243;<br />
SYSFONT=&#8221;latarcyrheb-sun16&#8243;</p>
<p>保存，重启系统。</p>
<h3><span id="more-1264"></span>Debian：</h3>
<p>apt-get install -y locales<br />
dpkg-reconfigure locales</p>
<p>执行 dpkg-reconfigure locales后会出现如下对话框：</p>
<p><img title="dpkg-reconfigure-locales-1" src="http://www.deepvps.com/wp-content/uploads/auto_save_image/2013/01/133944GSv.jpg" alt="" width="559" height="397" /></a></p>
<p>用向下的方向键找到en_US.UTF-8 UTF-8，按空格选择，再按回车键。</p>
<p><img title="dpkg-reconfigure-locales-2" src="http://www.deepvps.com/wp-content/uploads/auto_save_image/2013/01/133944cRs.jpg" alt="" width="477" height="229" /></a></p>
<p>再按向下键选择en_US.UTF-8，再按回车键确认。<br />
重启系统。</p>
<h3>Ubuntu：</h3>
<p>编辑/etc/default/locale 文件，修改内容为(没有的话创建一个)：<br />
LANG=&#8221;en_US.UTF-8&#8243;<br />
LANGUAGE=&#8221;en_US:en&#8221;<br />
保存，再执行：<strong>locale-gen en_US en_US.UTF-8</strong><br />
重启系统。</p>
<p>执行：<strong>locale</strong> 看一下是否显示是en_US.UTF-8，如果报错，请在本文反馈。</p>
<p>按以上步骤设置好后即可支持中文，可以上传中文的文件或中文的目录。</p>
<h3>可能会遇到的问题：</h3>
<p>如果使用Winscp或Flashfxp之类的工具上传都要设置为utf-8才可以，设置步骤如下：</p>
<p><strong>WinSCP:</strong></p>
<ol>
<li>打开WinSCP，在登录界面中选定要登录的会话</li>
<li>点击旁边的&#8221;编辑&#8221;按钮</li>
<li>在左侧树型菜单中找到&#8221;环境&#8221;项，并打开它</li>
<li>在右侧中一项为&#8221;文件名UTF-8编码&#8221;，选择&#8221;开启&#8221;，设置完成。</li>
</ol>
<p><strong>FlashFXP：</strong></p>
<ol>
<li>打开FlashFXP，点&#8221;站点&#8221;，选择&#8221;站点管理器&#8221;</li>
<li>点击选择要登陆的站点，在右侧点击&#8221;选项&#8221;选项卡，&#8221;字符编码&#8221; 后面的列表框里选择UTF-8，设置完成。</li>
</ol>
<p>如果在Putty或XShell等SSH客户端下显示乱码，也是需要修改字符编码为UTF-8的。</p>
<p><strong>Putty：</strong></p>
<ol>
<li>打开Putty，在登录会话界面中选定Default Settings</li>
<li>再点击左侧树形菜单中的&#8221;Window&#8221;，再点&#8221;Translation&#8221;，中文版的话对应的是&#8221;窗口&#8221;，&#8221;转换&#8221;</li>
<li>在右侧界面中有一项&#8221;Remote character set:&#8221;，中文版的是&#8221;假定接收数据的字符集&#8221;，在下拉列表中选择&#8221;UTF-8&#8243;，设置完成。</li>
</ol>
<p><strong>XShell：</strong></p>
<ol>
<li>打开XShell，在会话列表要登录的会话上右击，选择&#8221;Properties&#8221;</li>
<li>在点击&#8221;Terminal&#8221;，在Translation里有个Encoding的下拉列表框，选择&#8221;UTF-8&#8243;，设置完成，简单点的设置方法，直接点上面工具栏里面的蓝绿色的圆球，选择&#8221;UTF-8&#8243;。</li>
</ol>
<p>说了这么多，其实就是一点，编码一致，编码不一致就会出现乱码。</p>
<p>如果是在没有更改编码前上传的文件，设置好后依然会是乱码的，建议重新上传一下文件。如果没有原来文件的备份可以使用下面命令进行转换：<strong>for f in `ls *.html` ; do mv $f `ls $f|iconv -f GBK -t UTF-8`; done </strong>。</p>
<p>其中*.html为要转换的文件类型，也可以更换为*.txt，*.rar 主要是看你是什么文件了，里面的GBK为源文件的编码类型，如果不知道源文件的编码类型可以执行：<strong>file -bi 文件名</strong> 。</p>
<p>如果想在Windows下改的话其实也是可以的Editplus就有批量修改文件编码的功能，其他的软件可能也有此类功能，可以自行研究一下。</p>
<p>如果是目录的话，目前好像是没有办法进行转换。</p>
<p>还有一个问题，如果是html之类的网页文件，如果原来是网页内容是gb2312或类似的非utf-8的编码，先要将网页里面的charset 改为charset=utf-8，再转换文件编码，否则网页还是会乱码的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/lnmp-nginx-chinese-filename-directory.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>给Nginx自定义404，502错误页面</title>
		<link>http://www.deepvps.com/nginx-customize-404-502-page.html</link>
		<comments>http://www.deepvps.com/nginx-customize-404-502-page.html#comments</comments>
		<pubDate>Wed, 01 Sep 2010 08:58:42 +0000</pubDate>
		<dc:creator>deepvps</dc:creator>
				<category><![CDATA[VPS管理维护]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[502]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[自定义]]></category>

		<guid isPermaLink="false">http://www.deepvps.com/?p=534</guid>
		<description><![CDATA[首先打开nginx.conf文件，在fastcgi_temp_file_write_size 128k; 下面添加
fastcgi_intercept_errors on;
注意，包括;号
然后在需要定义的站点的里面添加
error_page 404 = /404.htm;
例如:
server
        {
                listen       80;
                server_name www.deepvps.com;
                index index.html index.htm index.php;
                error_page 404 = /404.htm;
      [...]]]></description>
			<content:encoded><![CDATA[<p>首先打开nginx.conf文件，在fastcgi_temp_file_write_size 128k; 下面添加</p>
<pre>fastcgi_intercept_errors on;</pre>
<p>注意，包括;号</p>
<p>然后在需要定义的站点的里面添加</p>
<pre>error_page <strong><span style="color: #ff0000;">404</span></strong> = /<strong><span style="color: #ff0000;">404</span></strong>.htm;</pre>
<p><span id="more-534"></span>例如:</p>
<pre>server
        {
                listen       80;
                server_name www.deepvps.com;
                index index.html index.htm index.php;
                error_page <strong><span style="color: #ff0000;">404</span></strong> = /<strong><span style="color: #ff0000;">404</span></strong>.htm;
                include location.conf;
                root  /home/www/logs;
        }</pre>
<p>记得404页面放在站点的跟目录下&#8230;</p>
<p>测试配置<br />
/usr/local/nginx/sbin/nginx -t</p>
<p>没错误就重启nginx<br />
/etc/init.d/nginx restart</p>
<p>BTW，其他页面也是这样定义</p>
<p>error_page 502 = /502.htm;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/nginx-customize-404-502-page.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
