在Subdirectory中使用Wordpress博客时,根目录中存在.htaccess文件

时间:2012-04-25 11:24:09

标签: wordpress .htaccess rewrite robots.txt canonical-link

我的所有网站的根目录中都有一个.htaccess文件,用于处理规范的重写。 .htaccess文件的全部内容如下:

Options +Indexes
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.domain.com/$1/ [L,R=301]

问题是,当我在一个子目录(/ blog)中安装一个Wordpress博客时,WP博客就无法运行了。我无法登录wp-admin区域。我的主人告诉我这是因为根目录中的.htaccess文件。因此需要将其删除。

那么如果根目录中没有.htaccess文件,如何实现相同的规范URL重写指令?我可以在root中的robots.txt文件中包含这些说明吗?或者还有另一种方法吗?

1 个答案:

答案 0 :(得分:1)

如果您的文档根目录为/var/www/my-site/,并且您希望在/var/www/my-site/blog中使用wordpress,则需要执行以下操作:

1。)创建index.php文件以下内容并将其放入/var/www/my-site

<?php
    define('WP_USE_THEMES', true);
    require('./blog/wp-blog-header.php');
?>

2。)将以下.htaccess放入/var/www/my-site

# Redirect http://example.com to http://www.example.com
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L] 

# BEGIN WordPress
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

现在,您访问管理区域的方式是http://www.example.com/blog/wp-admin

然后在信息中心中,转到设置并将WordPress Address URL设置为http://www.example.com/blog,将Site URL设置为http://www.example.com