htaccess и нет www - PullRequest
       27

htaccess и нет www

0 голосов
/ 05 марта 2010

Я пытаюсь перенаправить весь сайт на сайт без www

.

вот код htaccess, который я использую

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

# no www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.akorra\.com$ [NC]
RewriteRule ^.*$ http://akorra.com%{REQUEST_URI} [R=301,L]

любые идеи

Ответы [ 5 ]

1 голос
/ 06 марта 2010

Я думаю, что ваши правила должны быть между тегами модуля.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# no www
RewriteCond %{HTTP_HOST} ^www\.akorra\.com$ [NC]
RewriteRule ^.*$ http://akorra.com%{REQUEST_URI} [R=301,L]

# BEGIN WordPress
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

</IfModule>
1 голос
/ 05 марта 2010

Вот что вам нужно добавить к вашему .htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

Однако, если вы работаете с Wordpress в качестве движка, который питает весь вашсайта, просто обновите структуру постоянной ссылки и все внутренние настройки, указав в ней свое доменное имя, чтобы удалить www.

РЕДАКТИРОВАТЬ:

Я подумал, что было по-другому, когда я написал ответ Извините.Попробуйте переместить ваше правило без www в верх ...

# no www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.akorra\.com$ [NC]
RewriteRule ^.*$ http://akorra.com%{REQUEST_URI} [R=301s,L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

СНОВА. Имейте в виду, что если Wordpress настроен на создание ссылок с www, то ничто не помешает ему вернуть все обратно к wwwдаже с правильным правилом перезаписи.

Подробнее о Wordpress:

Проверьте настройки в wp/wp-admin/options-general.php ...

  • Обязательно удалите wwwв WordPress address (URL)
  • Обязательно удалите www в Blog address (URL)

И затем обновите структуру предварительной ссылки в wp-admin/options-permalink.php, чтобы изменения отразились.

После всего, что сказано и сделано, убедитесь, что Wordpress не переписал новый код в вашем файле .htaccess.

0 голосов
/ 30 июля 2014

Я предлагаю использовать этот фрагмент кода для удаления www с вашего сайта:

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

это более универсально.

и в вашем примере лучше использовать это:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # no www
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

    # BEGIN WordPress
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress
</IfModule>
0 голосов
/ 06 марта 2010
RewriteEngine On
RewriteBase /

# no www
RewriteCond %{HTTP_HOST} ^([^.]+)\.akorra\.com$ [NC]
RewriteRule ^(.*)$ http://akorra.com/$1 [R=301,L]

# WordPres
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Это должно работать

0 голосов
/ 05 марта 2010

Привет. Я думаю, вам нужно настроить скрипт следующим образом, чтобы переписать для работы:

Options +FollowSymlinks
RewriteEngine on

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

Дополнительные советы по mod_rewrite здесь:

http://www.askapache.com/htaccess/mod_rewrite-tips-and-tricks.html

Rob

...