Итак, я пытаюсь заставить этот код перенаправления работать уже несколько часов, и это сводит меня с ума. У меня есть противоположное направление (без www на www), работающее с этим кодом:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^(.*) http://www.%{HTTP_HOST} [R=301]
Я нашел приведенный выше код здесь: https://stackoverflow.com/questions/3013730/redirecting-non-www-to-www
Мне пришлось удалить $1 из третьей строки кода, чтобы заставить его работать:
RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301]
Мне нужно, чтобы www.example.com перенаправлял на example.com
и для каждой страницы на www.example.com перенаправлять на один и тот же URL, за исключением www.
www.example.com/test ---> example.com/test
www.example.com/begin.php ---> example.com/begin.php
Так далее и тому подобное. Поскольку у меня самый верхний раздел кода работал в противоположном направлении, я подумал, что было бы легко просто переключить пару вещей и заставить их работать через несколько минут, но я всегда заканчивал тем, что сталкивался с 404, бесконечными циклами и тому подобным. есть ты. Основная проблема в том, что я не до конца понимаю эту часть кода:
^[^.]+\.[^.]+$
Любая помощь для зеленого апача? Бесконечно благодарен!
---ИЗМЕНИТЬ---
Я нашел код, который ближе к тому, что мне нужно, но у него есть свои проблемы. Код:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^.*$ http://example.com%{REQUEST_URI} [R=301,L]
В этом коде есть две проблемы:
1) Когда я набираю example.com/test, он сначала проходит через www.example.com/test, чего я хотел бы избежать, если это вообще возможно.
2) Когда я ввожу example.com/test, он заканчивается на example.com/test.php, и я хотел бы избежать файла с < strong>.php в качестве конечного пункта назначения. Какие-либо предложения?