Htaccess для Wordpess, установленного на одном поддомене
Ситуация
- У меня стандартный хостинг в OVH (не VPS), и я могу разместить на нем множество веб-сайтов в разных подкаталогах,
- Я хотел бы установить 2 экземпляра Wordpress - сначала в каталог
/A
и затем в каталог/B
- Я хотел бы, чтобы "А" использовало
domain.com
и "Б" использовалоsubdomain.domain.com
Вопрос
- В этом случае мне нужно использовать стандартную конфигурацию
.htaccess
для Wordpress на отдельный домен в каждом каталоге Wordpress или мне нужно использовать специальную конфигурацию для поддомена в каждом каталоге 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>
Поддомен
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
- или, может быть, мне следует использовать версию подкаталога
.httaccess
?
Вложенная папка
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
1 answers
Мое предложение таково: используйте одну и ту же стандартную конфигурацию .htaccess
для Wordpress в одном домене в каждом каталоге 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>
Вместе с этим добавьте небольшой КОД, чтобы убедиться, что пользователи перенаправлены на правильный домен в случае, если они достигнут этого подкаталога, используя другой домен:
RewriteCond %{HTTP_HOST} !^domain\.com$
RewriteRule ^(.*)$ "https://domain.com/$1" [R=301,L]
После этого ваш .htaccess
для domain.com
будет выглядеть так:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^domain\.com$
RewriteRule ^(.*)$ "https://domain.com/$1" [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
И для subdomain.domain.com
это будет похоже на:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^subdomain\.domain\.com$
RewriteRule ^(.*)$ "https://subdomain.domain.com/$1" [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Причины:
Использование стандартного КОДА рекомендуется, потому что его проще поддерживать и отлаживать, так как он везде одинаков.
Дополнительные две строки рекомендуются в основном для
SEO
. Без них один из ваших доменов может быть доступен с помощью другого домена. Это может вызвать некоторые вопросы о дублировании контента.