2010-03-12 4 views
13

У меня есть домен и wordpress-блог на том же сервере. Теперь у меня проблема (сюрприз). Wordpress находится в/httpdocs/blog /, а домен указывает на/httpdocs /, и я пытаюсь перенаправить его в/httpdocs/domain /. Но, очевидно, у меня есть постоянные ссылки в Wordpress.Многие RewriteBase в одном файле .htaccess?

Вот мой текущий .htaccess:

RewriteEngine On 

RewriteBase /blog/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /blog/index.php [L] 

RewriteBase/
RewriteCond %{HTTP_HOST} domain.com 
RewriteCond %{REQUEST_URI} !^/domain 
RewriteCond %{REQUEST_URI} !^/cgi-bin 
RewriteRule ^(.*)$ domain/$1 [L] 

Но, как вы уже Propably предполагается, это не работает. Wordpress 'permalinks влияет на/domain /, так что мои изображения и другие URL-адреса идут не так.

Любые советы? Возможно ли использовать RewriteBase?

ответ

8

Нет, у вас может быть только один базовый URL. Просто перепишите свои правила:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^blog/. /blog/index.php [L] 

RewriteCond %{HTTP_HOST} =example.com 
RewriteCond %{REQUEST_URI} !^/domain 
RewriteCond %{REQUEST_URI} !^/cgi-bin 
RewriteRule ^(.*)$ domain/$1 [L] 
+1

Кажется, последняя директива RewriteBase выигрывает за весь файл .htaccess. – MrWhite

+1

На самом деле, по-видимому, первоначальная идея использования «RewriteBase» в вопросе неверна. Вам понадобилось бы написать шаблон 'RewriteRule' как'^blog/.' в любом случае, независимо от значения 'RewriteBase'. 'RewriteBase' не влияет на URI, сопоставленный с _pattern_, он влияет только на относительные _substitutions_. – MrWhite

Смежные вопросы