Я схожу с ума здесь.
У меня был .htaccess для веб-сайта со следующим содержанием:
Options FollowSymLinks
<ifmodule mod_rewrite.c>
RewriteEngine on
rewritecond %{http_host} ^XXX.com.ar [nc]
rewriterule ^(.*)$ http://www.XXX.com.ar/$1 [r=301,nc]
</ifmodule>
Он просто добавил «www» перед URL-адресом, если пользователь не написал его.
После некоторой разработки я сделал простой фреймворк «Маршрутизатор» для своего сайта. Затем каждый запрос должен был перейти в index.php, и он его «отправил». Итак, мой .htaccess закончился так:
Options FollowSymLinks
<ifmodule mod_rewrite.c>
RewriteEngine on
rewritecond %{http_host} ^XXX.com.ar [nc]
rewriterule ^(.*)$ http://www.XXX.com.ar/$1 [r=301,nc]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ../index.php?url=$1 [NC,L]
</ifmodule>
Проблема в том, что теперь, когда я захожу на: XXX.com.ar (без www), у меня есть 301 - перемещен навсегда
301 - перемещен навсегда> 301 - перемещен навсегда 301 - перемещен навсегда
сообщение.
И примерно так (в том же документе):
ErrorDocument для обработки запроса.
ErrorDocument для обработки запроса.> Кроме того, ошибка 400 Bad Request
был обнаружен при попытке использовать ErrorDocument для обработки запроса. ErrorDocument для обработки запроса.
301 - Документ с ошибкой перемещен навсегда для обработки запроса.
Пытаться:
RewriteEngine on
RewriteCond %{HTTP_HOST} XXX.com.ar [NC]
RewriteRule ^(.*)$ http://www.XXX.com.ar/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
Просто поменял места предложений и работает хорошо
Options FollowSymLinks
<ifmodule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ../index.php?url=$1 [NC,L]
rewritecond %{http_host} ^XXX.com.ar [nc]
rewriterule ^(.*)$ http://www.XXX.com.ar/$1 [r=301,nc]
</ifmodule>