在使用Godaddy的免费Win 主机时,其使用的windows server 2008并自带IIS7 ,当安装emlog4.2.1博客后,可按如下步骤为emlog4.2.1博客设置伪静态:
1、在网站根目录下创建一个web.config文件并把下列伪静态规则放入其中就可以了。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="emlog 4.2.1 for IIS7.5" stopProcessing="true"> <match url="." ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="/index.php" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
2、然后就可以登录到emlog4.2.1博客管理后台 >设置 > 日志链接,然后选择“伪静态格式”并保存,如:分类形式
此方法适用于4.0以后版本,如果有疑问,可以留言大家一起看下。
----------------------------------------------------------------------------------------------------------------------------
第二个问题,就是Emlog的tag用伪静态时如https://dabao.me/tag/****这种格式的,如果****为中文的话就会出现404错误页面。
在网上搜到如下:
“
godaddy win主机下wordpress tag 中文标签这个问题重建站之初困扰至今 今个终于解决了 网上也有几个方法(不推荐) 就是不使用中文TAG 全部使用英文TAG 或者改程序文件 都不好使 伊惜缘的目的是要使用中文标签 经过一段时间揣摩和调试 终于发现了问题所在 godaddy的win主机比较奇怪 既有IIS服务器又有apache服务器 所以在获取$_SERVER['REQUEST_URI']会出错 显示tag/?? 这样的情况 解决很简单 不用转码 不用转插件 下面跟我手把手操作
首先 先打开wp-includes/class-wp.php 如果没发现 可能你的是2.x版本的 那个版本是class.php 伊惜缘目前所使用的是最新版本3.3.1 所以这里以以3.x版本为准
其次 找到第147行 当然 你要是怕麻烦 也可以搜索下面这行
$req_uri = $_SERVER['REQUEST_URI'];
然后把这行改成
$req_uri = $_SERVER['UNENCODED_URL'];
保存退出文件即可 大功告成 收工 自己点击TAG试试吧
”
上面是说的在wordpress下问题的解决办法,那在emlog下怎么解决呢?
其实是一样的,只不过改的文件不同而已,在emlog下要改的文件为include\lib\dispatcher.php这个文件
找到这个文件的这个方法
public static function setPath(){ $path = ''; if (isset($_SERVER['REQUEST_URI'])){ $path = $_SERVER['REQUEST_URI']; } else { if (isset($_SERVER['argv'])) { $path = $_SERVER['PHP_SELF'] .'?'. $_SERVER['argv'][0]; } else { $path = $_SERVER['PHP_SELF'] .'?'. $_SERVER['QUERY_STRING']; } }
把第三行和第四行的
if (isset($_SERVER['REQUEST_URI'])){ $path = $_SERVER['REQUEST_URI'];
改成
if (isset($_SERVER['UNENCODED_URL'])){ $path = $_SERVER['UNENCODED_URL'];
然后覆盖,现在回到首页试试吧