HTACCESS и NO WWW
-
24-09-2019 - |
Вопрос
Я пытаюсь перенаправить весь свой сайт для неистека
Вот код 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]
есть идеи
Решение
Я думаю, что ваши правила надо между тегами модуля.
<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>
Другие советы
Вот что вам нужно добавить в свою .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
файл.
Привет, я думаю, вам нужно настроить свой скрипт следующим образом для переписывания на работу:
Options +FollowSymlinks
RewriteEngine on
Я считаю, что следующие симликовые ссылки абсолютно должны быть включены для переписывания URL для правильной работы.
Больше советов по Mod_rewrite здесь:
http://www.askapache.com/htaccess/mod_rewrite-tips-and-tricks.html.
Ограбить
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]
Это должно работать
Предлагаю использовать этот кусок кода для удаления 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>