刚刚开始尝试了解 Apache 下所有指令和选项的工作方式。
我想对我的一个网站进行重定向(服务器上只运行一个网站),这样当请求进入 http:/example.com 时,服务器会自动将其重定向到http://example.com/mylink。
我尝试将重定向放入位于 /etc/apache2/sites-enabled 的文件中以重写此内容,但顶级域名 URL 抱怨它没有正确重定向。
我想我想要的是浏览器重定向,并且想到使用
RewriteEngine On
RewriteRule ^/$ /mylink [L,R]
可以工作,但是将其放入 .htaccess 文件中却不起作用(它重定向但立即出现 500 内部服务器错误。)
将其放入 /etc/apache2/sites-enabled 文件中会导致尝试重新启动 Apache 时出现配置错误。
我知道这很简单...但我错过了什么?
答案1
尝试使用 RedirectMatch:
RedirectMatch permanent ^/$ http://mysite.com/mylink
当您需要进行简单的重定向时,它们通常会更容易使用,而当您不希望最终用户看到结果时,重写就会发挥作用。
答案2
您要将其放在站点文件的哪里?这在上下文中应该可以正常工作<VirtualHost>
,但在.htaccess
文件或<Directory>
上下文中则不行(它们需要相对路径,而不是绝对路径)。
再说了,他们也不应该破坏配置或导致 500 错误 - 只是不重定向。应该有一些有趣的东西error.log
。
当你说它重定向然后500 错误,500 错误出现在“新” URL 上?直接访问该 URL 是否会出现 500 错误,从而避免重定向?