Dreamhost上.htaccess被覆盖导致wordpress404错误的解决方法

2008-01-13 19:35| 分类:tech| 2,469 次点击

wordpress已经实现静态化,但我还想把自己站下的一个论坛伪静态化,那个论坛在站点的bbs目录下。于是先是在discuz后台打开了静态化功能,在这里下载了一个discuz的.htaccess文件并修改上传:——————————————————————————————————————————————————

# 将 RewriteEngine 模式打开
RewriteEngine On

# 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
RewriteBase /bbs

# Rewrite 系统规则请勿修改
RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1

上传到根目录,但是马上就出现问题了:所有真实目录都可以访问(所以wordpress管理页面没有任何问题),但虚拟目录(比如任何一篇正文)就全部不行了,提示:

Not Found

The requested URL /about was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

看来是wordpress本来的.htaccess被我的这个discuz的给替换了,

一、有四种方法可以解决这个问题:

方法一、使用FTP软件删除掉.htaccess,但一般FTP软件没有显示服务器上的隐藏文件,所以就需要设置一下,比如让cuteftp显示隐藏文件必须这么设置:站点属性-动作-过滤-启用服务器端过滤-远程过滤中填上:-a,即可。重新连接即可看到.htaccess,删掉。
不过,此时访问你的博客,仍然是主页可访问,但文章页404,你需要让wordpress重新生成.htaccess,方法是这样:进入管理后台-设置-永久链接,然后不要做任何改动,点击“更新永久链接结构”,即可。
这时wordpress已经自动生成了.htaccess,博客恢复正常。

方法二、打开命令提示行cmd,输入ftp,然后输入:
open ftp地址 回车,然后就是用户名密码,再在这个窗口中切换到wordpress目录下,用dele .htaccess删除掉htaccess。
删除完后按第一步接下来的步骤做。

方法三、在Dreamhost的webftp中删掉.htaccess,再按第一步接下来的步骤做。

方法四、登录Dreamhost的webftp,在线编辑.htaccess为以下内容:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>

# END WordPress

保存后wordpress就正常了。标题的问题解决了。

二、实现架设在wordpress文件夹下的discuz论坛静态化(失败)

先尝试着编辑.htaccess成:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteBase /bbs
RewriteRule ^archiver/((fid|tid)-[0-9]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1

</IfModule>

# END WordPress

但仍然访问http://www.chenfangyi.com/bbs/forum-2-1.html 会是wordpress的404提示,说明还是wordpress的rewrite规则在起作用。

后来我又把这个discuz的那个.htaccess做了修改,放进bbs文件夹里,仍旧不行,所以暂时放弃。
两点:1、discuz的.htaccess会和wordpress的.htaccess冲突。
2、discuz不能像wp等博客那样自动生成.htaccess,还必须自己去上传这个东西。

参考文章:
Permanent Link to .Htaccess与WP的Permalinks滴冲突
怎样删除主机上的.htaccess文件 – Nings blog

相关文章

  • 没有相关文章
  1. 2条评论

  2. 大猫 2008-01-13 19:55

    呃..用flashfxp直接能看到.htaccess
    ..goodluck

    [回复]

  3. 寿光家园 2008-09-08 11:12

    可以试着把rewriteBase改为根目录,之后配置bbs的php地址。

    [回复]

发表您的评论

您的昵称:
您的邮箱:(可选,不会被公布)
您的网站: