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

Простой способ перенаправить http://example.com на http://example.com/mylink с помощью Apache?

Просто начинаю пытаться понять, как все директивы и параметры работают под Apache.

Я хотел бы сделать перенаправление с моим единственным сайтом (на сервере запущен только один сайт), чтобы при поступлении запроса на http: /example.com сервер автоматически перенаправлял их на дополнительный URL-адрес http://example.com/mylink.

Я попытался поместить перенаправления в файл, расположенный в / etc / apache2 / sites-enabled, чтобы переписать это, но затем URL-адрес домена верхнего уровня жалуется, что перенаправляется неправильно.

Я думаю, что мне нужен перенаправление браузера, и я подумал, используя

RewriteEngine On
RewriteRule ^/$ /mylink [L,R]

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

Помещение его в файл в / etc / apache2 / sites-enabled дает ошибку конфигурации при попытке перезапустить Apache.

Я знаю, что это что-то простое ... но что мне не хватает?

Вместо этого попробуйте RedirectMatch:

RedirectMatch permanent ^/$ http://mysite.com/mylink

Они часто оказываются проще, когда вам нужно простое перенаправление, тогда как перезаписи приходят сами по себе, когда вы не хотите, чтобы конечный пользователь видел результаты.

Куда вы его кладете в файл сайта? Это должно работать нормально в <VirtualHost> контекст, но не в .htaccess файл или <Directory> контекст (ожидаемые относительные, а не абсолютные пути).

Опять же, они не должны взрывать конфигурацию или вызывать 500 ошибок - просто не перенаправлять. Должно быть что-то интересное в error.log.

Когда вы говорите, что он перенаправлен затем 500 ошиблись, 500 вернулись по «новому» URL? Будет ли 500, когда вы идете прямо к нему, избегая перенаправления?