.htaccess постоянный редирект на www - PullRequest
3 голосов
/ 12 ноября 2010

У меня есть установка WordPress, которая не перенаправляет URL-адреса, не начинающиеся с www.

Пример: http://example.com/dir/ не отправляет на http://www.example.com/dir/, вместо этого идет на http://example.com/

Как изменить приведенный ниже .htaccess, чтобы всегда перенаправлять на страницу, используя www или нет?

# BEGIN WordPress
RewriteEngine On

RewriteBase /
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).*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

# END WordPress

Ответы [ 4 ]

10 голосов
/ 12 ноября 2010

Вам не нужно изменять .htaccess; на самом деле я бы не советовал.

Похоже, вы просто правильно задали значения для адреса WordPress и адреса сайта в консоли администратора в разделе Настройки> Общие :

image General section and the WordPress address and Site address">

Другой вариант - добавить следующие 2 строки где-нибудь в файле /wp-config.php, но перед require_once(ABSPATH . 'wp-settings.php'); (и не использовать косую черту):

define('WP_HOME',"http://www.example.com/dev");
define('WP_SITEURL',"http://www.example.com/dev");

Я предпочитаю такой подход, потому что мне нравится, когда это возможно, сохранять мои параметры конфигурации в коде, поскольку его легче поддерживать, чем параметры конфигурации, хранящиеся в базе данных.

Надеюсь, это поможет.

-Mike

P.S. В следующий раз, когда у вас возникнет вопрос WordPress, подумайте над тем, чтобы спросить на родственном сайте StackOverflow Ответы WordPress ? Многие энтузиасты WordPress помогут вам.

5 голосов
/ 12 ноября 2010

Я получил правильный ответ от webmasters.stackexchange.com. Это работает отлично! Спасибо, Руэль, за то, что указал мне на webmasters.stackexchange.

Options +FollowSymlinks
RewriteCond %{HTTP_HOST} !^(www\.|$) [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
3 голосов
/ 12 ноября 2010

Больше похоже на вопрос для http://webmasters.stackexchange.com

В любом случае, если вы используете cPanel, вы можете сделать перенаправление с подстановочным знаком из Redirects в категории Domains.нет, попробуйте это:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com[nc]
RewriteRule ^(.*)$ http://www.example.com/$1 [r=301,nc]
0 голосов
/ 30 марта 2018

Работает отлично.Поместите это в начало файла wp-config.php:

define('WP_HOME',"http://www.example.com/dev");
define('WP_SITEURL',"http://www.example.com/dev");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...