11 12
发新话题
打印

[问题求助] wp2.62,本地测试,windows主机+apache,永久链接无法使用

wp2.62,本地测试,windows主机+apache,永久链接无法使用

wp2.62在windows下,到底能不能使用永久链接啊?

TOP

如果可以自定义404页面,也是可以的

不过是伪静态

TOP

可是可以,不过后面要有个index.php!
http://www.xiaorsz.cn——做你自己,笑傲人生!

TOP

引用:
原帖由 xiaorsz 于 2008-9-30 13:18 发表
可是可以,不过后面要有个index.php!
不用也是可以的

我以前试验过成功,资料来自网上:
给IIS加上支持WordPress的Permalink功能
给IIS加上支持WordPress的Permalink功能,可以通过ISAPI的URL Rewrite过滤器,或者404重定向的方式来实现。
ISAPI过滤器需要手动设置Rewrite规则,对于普通用户来说这是很困难的,而且一些空间商也不提供此类功能。
WordPress官网给出404重定向解决方法,不过存在缺陷,不能支持带Query String的链接,例如搜索结果的翻页:复制内容到剪贴板代码:
http://domain/page/2?s=key这里介绍一种同样通过404重定向的方式,解决Query String问题的方式:复制内容到剪贴板代码:
<?php
$ori_qs = $_SERVER['QUERY_STRING'];
$pattern = '/[^;]+;[^:]+:\/\/[^\/]+(\/[^\?]*)(?:\?(.*))?/i';
preg_match($pattern, $ori_qs, $matches);
$_SERVER['PATH_INFO']    = $matches[1] . '?' . $matches[2];
$_SERVER['REQUEST_URI']  = $_SERVER['PATH_INFO'];
$query_args              = explode('&', $matches[2]);
unset($_GET);
foreach ($query_args as $arg)
{
    $the_arg = explode('=', $arg);
    $_GET[$the_arg[0]] = $the_arg[1];
}
include('index.php');
?>将上述代码保存为:wp-404-handler.php文件,上传至WordPress根目录,然后指定404模式为“url”,地址为"/wp-404-handler.php"。
如果你的WordPress不是安装在根目录,例如:"http://domain/blog",那么请将上述地址修改为“/blog/wp-404-handler.php”。
另外,中文slug在IIS上失效的方式需要通过修改"wp-includes/classes.php"文件来实现。打开该文件,搜索:引用:
if ( isset($_SERVER['PATH_INFO']) )
        $pathinfo = $_SERVER['PATH_INFO'];
else
        $pathinfo = '';
$pathinfo_array = explode('?', $pathinfo);
$pathinfo = str_replace("%", "%25", $pathinfo_array[0]);
$req_uri = $_SERVER['REQUEST_URI'];
修改为引用:
if ( isset($_SERVER['PATH_INFO']) )
        $pathinfo = iconv('GBK', 'UTF-8', $_SERVER['PATH_INFO']);
else
        $pathinfo = '';
$pathinfo_array = explode('?', $pathinfo);
$pathinfo = str_replace("%", "%25", $pathinfo_array[0]);
$req_uri = iconv('GBK', 'UTF-8', $_SERVER['REQUEST_URI']);经过这两步修改以后,IIS也能完美支持WordPress的Permalink功能了。

TOP

恩,楼上那个好东西哦
完美实惠wp空间       我的 简爱
WP群74015724

TOP

本地还弄什么永久连接啊

TOP

引用:
原帖由 Dianso 于 2008-9-30 19:10 发表
本地还弄什么永久连接啊
测试嘛

TOP

太感谢了,哈哈,居然成功了

TOP

什么居然啊。。我是以前用过这个方案的

哈哈,恭喜

TOP

不用iis用apache也可以的,找到了一篇文章
http://www.4studio.cn/blog/?p=296

1.启用mod_rewrite模块
在conf目录的httpd.conf文件中找到
LoadModule rewrite_module modules/mod_rewrite.so
将这一行前面的#去掉。
2.在要支持url rewirte的目录启用 Options FollowSymLinks和AllowOverride All
<Directory “c:/web/php/”>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
“c:/web/php/”为你要开的WP的目录位置。
这样就可以开启伪静态功能的了
至于原因嘛,就看一下我在网上找到的一些资料
网上的很多文章并没有提到要使用 Options FollowSymLinks,因为在httpd.conf中有
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Satisfy all
</Directory>
这样如果你的网站配置成通过http://localhost/来访问,就不会注意到Options FollowSymLinks的影响,只需要将AllowOverride None改为AllowOverride All即可。不加Options Indexes FollowSymLinks就成功不了,会显示404错误,造成这样的错误在apache文档中找到了原因
Note: To enable the rewriting engine for per-directory configuration files you need to set “RewriteEngine On” in these files andOptions FollowSymLinks” must be enabled. If your administrator has disabled override of FollowSymLinks for a user’s directory, then you cannot use the rewriting engine. This restriction is needed for security reasons.
实际上mod_rewrite是针对目录的,因此并不需要将httpd.conf中的所有AllowOverride None改为AllowOverride All,Options也一样。

TOP

 11 12
发新话题