Wordpress .htaccess配置有什么问题?

时间:2016-05-24 08:57:43

标签: wordpress .htaccess mod-rewrite

我有一个非常简单的网站,我还在子文件夹/blog/中托管了一个博客,并为此创建了子域blog.example.com

在根文件夹/下,我有一个非常简单的网站,只显示信息。在/blog/文件夹中,我有一个WordPress博客。

现在,在根文件夹中我创建了这个.htaccess文件:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com
RewriteRule ^(.*)$ http://example.com/%1/$1 [NC,P]

这很好用,当我在浏览器中编写http:blog.example.com时,会显示Wordpress并且一切正常。

但是,我想在wordpress中激活永久链接,所以我在管理部分激活它,这会在.htaccess目录中创建一个/blog/

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

然而,这不起作用,我不明白为什么。基本上,会发生的事情是http://blog.example.com工作正常,但在此之后使用帖子标题失败(类似http://blog.example.com/my-post)。

网址中的地址是正确的(http://blog.example.com/my-post),但浏览器中显示的是根文件夹index.php的{​​{1}}。

我尝试修改文件:

/

这一次,我总是到达博客的第一页,但它说帖子是&#34;找不到&#34;。

知道到底发生了什么事吗?

2 个答案:

答案 0 :(得分:1)

请尝试以下代码:

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

这可能对您有所帮助。

答案 1 :(得分:0)

请参阅Giving WordPress Its Own Directory,尤其是第9号。

  
      
  1. 更改以下内容并保存文件。更改说明的行:
      require( dirname( __FILE__ ) . '/wp-blog-header.php' );
      对于以下内容,使用WordPress核心文件的目录名称:
      require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' );
  2.   

如果这还不够,您可能还需要修改/blog/.htaccess中的RewriteBase

RewriteBase /blog/
...
RewriteRule . index.php [L]

注意index.php 没有前导斜杠。