我有一个非常简单的网站,我还在子文件夹/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;。
知道到底发生了什么事吗?
答案 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号。
- 更改以下内容并保存文件。更改说明的行:
醇>
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
对于以下内容,使用WordPress核心文件的目录名称:
require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' );
如果这还不够,您可能还需要修改/blog/.htaccess
中的RewriteBase
RewriteBase /blog/
...
RewriteRule . index.php [L]
注意index.php
没有前导斜杠。