Wordpress сеть .htaccess проблема - PullRequest
0 голосов
/ 11 ноября 2011

У меня есть настройка сети Wordpress, но в настоящее время есть только один дочерний сайт с URL

/ психология

В будущем появятся дополнительные сайты с

/ мкр / Ветеринар

но пока будет только / психология

В моем htaccess есть правило переписывания: когда пользователь заходит в корень сайта (/), он на самом деле загружает сайт / psychology.

Я попытался добавить такую ​​строку в свой htaccess

RewriteRule (. *) Психология / $ 1 [R, L]

но это сломало сайт. Вот мой текущий htaccess (в основном WordPress по умолчанию для сетевой установки)

 # BEGIN WordPress
 <IfModule mod_rewrite.c>
 Options +FollowSymlinks
 RewriteEngine On
 RewriteBase /ASKanALLY/
 RewriteRule ^index\.php$ - [L]

 # uploaded files
 RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

 # add a trailing slash to /wp-admin
 RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]


 RewriteCond %{REQUEST_FILENAME} -f [OR]
 RewriteCond %{REQUEST_FILENAME} -d
 RewriteRule ^ - [L]
 RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
 RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
 RewriteRule . index.php [L]
 </IfModule>

# END WordPress

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 11 ноября 2011

Вам необходимо добавить базу в пункт назначения RewriteRule. И добавьте условие, чтобы вы не получили цикл перенаправления.

Добавление этих двух строк после RewriteRule ^ - [L] должно работать:

RewriteCond %{REQUEST_URI} !^/ASKanALLY/psychology  ## Not already viewing a psychology URL
RewriteRule ^(.*)$ /ASKanALLY/psychology/$1 [R,L]  ## Redirect to psychology

Вот полный пример:

# BEGIN WordPress
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase /ASKanALLY/
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]


RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteCond %{REQUEST_URI} !^/ASKanALLY/psychology  ## Not already viewing a psychology URL
RewriteRule ^(.*)$ /ASKanALLY/psychology/$1 [R,L]  ## Redirect to psychology

RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
</IfModule>
0 голосов
/ 11 ноября 2011

Ваш RewriteRule не работал, потому что он соответствовал всем URL, включая те, что /psychology/foo.Я предполагаю, что у вас нет файла .htaccess в / психологии?

Попробуйте это - он перепишет только корень.

RewriteRule ^/$ psychology/ [r=301,L]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...