Наличие файла .htaccess в корневом каталоге при использовании блога Wordpress в подкаталоге

У меня есть файл .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]

Проблема в том, что когда я устанавливаю блог Wordpress в подкаталог (/blog), блог WP становится неработоспособным. Я не могу войти в область wp-admin. Мой хост говорит мне, что это из-за файла .htaccess в корне. Поэтому это нужно удалить.

Итак, как мне добиться тех же канонических инструкций по перезаписи URL, если у меня нет файла .htaccess в корне? Можно эти инструкции в файле robots.txt в корне? Или есть другой способ сделать это?


person user1355981    schedule 25.04.2012    source источник


Ответы (1)


Если вы документируете корень /var/www/my-site/ и хотите иметь wordpress в /var/www/my-site/blog, вам нужно сделать следующее:

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.

person scibuff    schedule 25.04.2012