Назад | Перейти на главную страницу

настройка виртуального хоста: невозможно получить доступ к сайту wordpress без www

Я хотел бы получить доступ к своему сайту как с www, так и без него. В настоящее время работает только с. Если не указывать www, просто перейдем на пустую страницу. Кроме того, wp-admin просто загружает пустую страницу.

Я установил рекорд A для mysite.com и www.mysite.com, оба указывают на мой статический IP Bitnami. У меня также есть поддомен, сопоставленный с другим каталогом, который работает нормально (conference.mysite.com и www.conference.mysite.com).

Я использую стек Bitnami на микро-экземпляре AWS EC2.

Вот мой httpd.conf:

ServerRoot "/opt/bitnami/apache2"
Listen 80

LoadModule authn_file_module modules/mod_authn_file.so
blah blah blah....
LoadModule php5_module        modules/libphp5.so

<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User daemon
Group daemon
</IfModule>
</IfModule>

ServerAdmin you@example.com
ServerName localhost:80
DocumentRoot "/opt/bitnami/apps/wordpress1/htdocs/"

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Allow from all
</Directory>

<Directory "/opt/bitnami/apps/wordpress1/htdocs/">
    Options Indexes MultiViews +FollowSymLinks
    LanguagePriority en
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

<FilesMatch "^\\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>
ErrorLog "logs/error_log"

LogLevel warn
<IfModule log_config_module>

    LogFormat "%h %l %u %t \\"%r\\" %>s %b \\"%{Referer}i\\" \\"%{User-Agent}i\\"" combined
    LogFormat "%h %l %u %t \\"%r\\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \\"%r\\" %>s %b \\"%{Referer}i\\" \\"%{User-Agent}i\\" %I %O" combinedio
    </IfModule>

    CustomLog "logs/access_log" common
</IfModule>
<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/opt/bitnami/apache2/cgi-bin/"
</IfModule>
<Directory "/opt/bitnami/apache2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
DefaultType text/plain
<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
</IfModule>

Include conf/extra/httpd-mpm.conf

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
AddType application/x-httpd-php .php .phtml
LoadModule wsgi_module modules/mod_wsgi.so
WSGIPythonHome /opt/bitnami/python

ServerSignature Off
ServerTokens Prod

AddType application/x-httpd-php .php
PHPIniDir "/opt/bitnami/php/etc"

Include "/opt/bitnami/apps/phpmyadmin/conf/phpmyadmin.conf"
ExtendedStatus On
<Location /server-status>
  SetHandler server-status
  Order Deny,Allow
  Deny from all
  Allow from localhost
</Location>

Include "/opt/bitnami/apache2/conf/bitnami/httpd.conf"
Include "/opt/bitnami/apps/virtualhost.conf"

Вот мой файл виртуальных хостов:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin xx
    DocumentRoot "/opt/bitnami/apps/wordpress1/htdocs"
    ServerName mbird.com
    ServerAlias www.mbird.com
    ErrorLog "logs/wordpress-error_log"
    CustomLog "logs/wordpress-access_log" common
</VirtualHost>
<Directory "/opt/bitnami/apps/wordpress1/htdocs">
 Options Indexes MultiViews +FollowSymLinks
 AllowOverride All
 Order allow,deny
 Allow from all
</Directory>

### WordPress conference.mbird.com configuration ###
<VirtualHost *:80>
 ServerAdmin sysadmin@mbird.com
 DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"
 ServerName conference.mbird.com
 ServerAlias www.conference.mbird.com
 ErrorLog "logs/confwordpress-error_log"
 CustomLog "logs/confwordpress-access_log" common
</VirtualHost>
<Directory "/opt/bitnami/apps/wordpress/htdocs">
 Options Indexes MultiViews +FollowSymLinks
 AllowOverride All
 Order allow,deny
 Allow from all
</Directory>
###

WP не очень хорошо работает с несколькими доменами, поскольку все его ссылки на страницы, вложения и прочее хранятся в его базе данных и файлах, а не в переменных. Определите адрес веб-сайта (с или без части www) и сделайте правильное постоянное перенаправление на своем веб-сервере, указывающее на правильный адрес.

Насколько я понимаю, вы хотите, чтобы 2 рабочих сайта, www и без www. Это не очень хорошая ситуация. Вероятно, вам нужно принять формальное решение: какой из www или не www вам предпочтительнее? (Google Analytics и другие будут действительно любить / нуждаться в этом)

Затем сделайте постоянное перенаправление всех URL-адресов от нежелательных до предпочтительных. Это будет «301 редирект», как предлагает Вадим.

Эти перенаправления будут установлены в ваш vhost.conf

Возможно, вам стоит посмотреть конфигурацию wordpress относительно обслуживаемых доменов сайта ('MULTISITE') или настроить явное перенаправление apache с домена на www.domain.