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

Почему у меня не работает перенаправление htaccess?

Я установил простое перенаправление htaccess, которое выглядит следующим образом (это весь файл .htaccess):

Options +FollowSymLinks

RewriteEngine On

Redirect 301 /something http://something.com/something.php

Если я затем загружу сайт, содержащий этот .htaccess, то есть myredirectsite.com/something, я получу следующее 404:

The requested URL /something was not found on this server.

Apache/2.2.3 (Red Hat) Server at myredirectsite.com Port 80

И журналы:

[Вт 10 июля, 14:25:46 2012] [ошибка] [клиент xx.xx.xxx.xx] Файл не существует: / home / sites / scp / something

Что-то не является файлом, а что-то не существует. Я предположил, что могу использовать Redirect так же, как Rewrite, но похоже, что перенаправление должно быть для файла, который действительно существует?

Я создал файл «что-то», и он просто пытается загрузить пустой файл. Без перенаправления.

Что мне не хватает в работе?

Удостоверься что

AllowOverride All

устанавливается в файле httpd.conf!

Но если у вас есть доступ к основному файлу конфигурации, я бы рекомендовал выполнить настройку там, а не в файле .htaccess - файл .htaccess замедлит работу сервера. Это может не быть проблемой, если у вас очень низкая нагрузка на сервер, но лучше использовать передовой опыт даже в небольших проектах.

Мой файл httpd.conf не был настроен на этом сервере на AllowOverride в каталоге сайта. Было установлено значение «none», которое я изменил на:

AllowOverride All