代码之家  ›  专栏  ›  技术社区  ›  harkmylord

WordPress友好的URL在同心/XO主机上?

  •  0
  • harkmylord  · 技术社区  · 14 年前

    我最近安装了WordPress,无论在仪表板或.htaccess文件中使用什么设置,我都无法让网站显示友好的URL。我尝试过很多版本的WordPress,但仍然无法达到我所需要的效果,尽管在除Concentric/XO之外的主机上取得了成功,你知道为什么吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   ccheney    14 年前

    更新:我发布了一个插件,可以为您完成所有这些工作。但是,您仍然需要遵循.htaccess文件的步骤。看看这里: http://wordpress.org/extend/plugins/permalink-fix-disable-canonical-redirects-pack/

    在第一次尝试安装WordPress之前,请遵循以下步骤。如果您已经安装了它,请重新开始。

    要使permalink正常工作,您需要创建一个.htaccess文件,WordPress不能在此主机上自动执行此操作。下面是basic.htaccess文件的外观:

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    

    确保使用允许Unix格式(如pspad或vim、textmate等)的编辑器创建此文件,使用记事本会给您一个解析错误-这与不可见的文件尾字符(clrf)有关。确保最后一条规则后面有硬返回,这是必需的。.htaccess文件最多缓存15分钟,因此您可能需要等待它启动。

    接下来,您需要编辑wp-settings.php文件,以便在编辑器中打开它。在结束语的正上方添加以下代码?PHP标签:

    if(isset($_REQUEST['q'])) {
    $_SERVER['REQUEST_URI'] = "/" . $_REQUEST["q"];
    }else{
    if (empty($_SERVER['QUERY_STRING'])) {
    $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'];
           } else {
    $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . "?" .
    $_SERVER['QUERY_STRING'];
           }
    }
    

    如果有人能更清晰地编写这段代码,我就不是一个专业的PHP程序员。

    一旦代码块就位,您就可以继续运行安装。

    现在已经安装了WordPress,在开始写博客之前,您还需要做一件事:

    创建一个名为disable-canonical-redirects.php的新文件,并将其上载到wp content/plugins目录。

    将此代码块放到该文件中:

    <?php
        /*
        Plugin Name: Disable Canonical URL Redirection
        Description: Disables the "Canonical URL Redirect" features of WordPress 2.3 and above.
        Version: 1.0
        Author: Mark Jaquith
        Author URI: http://markjaquith.com/
        */
    
        remove_filter('template_redirect', 'redirect_canonical');
    
    ?>
    

    现在您需要启用该插件,请转到“管理登录”页面: example.com/wp-login

    启用您创建的插件。就这样,你在骑马。

        2
  •  0
  •   Pekka    14 年前

    问他们是否有 mod_rewrite 启用。

    要了解您自己,请先尝试添加一个包含胡言乱语的.htaccess文件:

    sadölkasdfksdakföasldfg
    

    如果将其放到Web空间中,然后尝试访问其中的任何页面,会导致500个错误,那么就会分析htaccess文件。 然后尝试添加“real”.htaccess文件:

    RewriteEngine On
    

    如果不使用500,则URL重写 应该 被打开。