Я пытаюсь преобразовать http://localhost/website
в http://website.loc
, но я не могу этого сделать. Вот что я мог сделать:
Я отредактировал / etc / hosts (я в Ubuntu), изменив 127.0.0.1 localhost
на 127.0.0.1 localhost website.loc
и сохранив изменения
Я создал новый файл с именем website
внутри /etc/apache2/sites-available
с таким содержанием:
<virtualhost website.loc>
ServerName website.loc
DocumentRoot /home/myuser/projects/website/
<directory /home/myuser/projects/website/>
AllowOverride all
Options Indexes FollowSymLinks MultiViews
Order allow,deny
allow from all
</directory>
</virtualhost>
И я создал мягкую ссылку на сайты с включенной поддержкой. После этого я перезапустил Apache.
Кстати, я использую фреймворк Yii с любым запросом / перенаправленным в /index.php, поэтому index.php в запросе не нужен.
Итак, когда я пишу website.loc / в chrome, он перемещает меня в http://website.loc/site/login (страница индекса входа в систему, это почти ожидаемо, даже если я вошел в систему как localhost, потому что URL сайта "изменился" на website.loc, поэтому файлы cookie не передаются), но их содержание:
Not Found
The requested URL /website/index.php was not found on this server.
Apache/2.2.16 (Ubuntu) Server at website.loc Port 80
Я что-то не так делаю? Заранее спасибо, приятели
Редактировать: Все дело в .htaccess внутри / home / myuser / projects / website. Это RewriteBase указывал на / веб-сайт. Изменив это на /, и это сработало как шарм. Спасибо @Chux за напоминание мне проверить .htaccess!