Просто начинаю пытаться понять, как все директивы и параметры работают под 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, когда вы идете прямо к нему, избегая перенаправления?