apache httpd.conf 中 favicon 的 RewriteRule

mle*_*les 1 apache mod-rewrite redirect

我正在尝试为我的 mediawiki 网站设置一个图标。该图标应该位于https://mywiki.net/favicon.ico

设置

  • Apache 基本路径是/var/www/html
  • 媒体维基位于/var/www/html/mywiki
  • 网站图标的路径是/var/www/html/mywiki/favicon.ico
  • 我将所有请求重定向mywiki.nethttps://mywiki.net/wiki
  • 我在 AWS EC2 机器上使用 Apache/2.4.25 (Amazon)

httpd.conf

阅读完短网址手册后,我将这些重定向放在我的 apache 配置的底部:

IncludeOptional conf.d/*.conf
RewriteEngine On
RewriteRule ^/favicon.ico /var/www/html/mywiki/favicon.ico [L]
Alias /wiki /var/www/html/mywiki/index.php
RedirectMatch ^/$ /wiki
Run Code Online (Sandbox Code Playgroud)

在conf.d 中,我包含了一个redirect-everyting-to-https 配置文件。这是由 LetsEncrypt 自动生成的:

conf.d/le-redirect-mywiki.net.conf

<VirtualHost _default_:80>
ServerName mywiki.net 

ServerSignature Off

RewriteEngine On
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

ErrorLog /var/log/httpd/redirect.error.log
LogLevel warn
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

到目前为止,维基百科可以正常运行,只是它没有图标。如果我wget https://mywiki.net/favicon.ico收到 404。在日志中我可以看到

==> /var/log/httpd/ssl_access_log <==
xxx.xxx.xxx.xxx - - [19/May/2017:20:43:37 +0000] "GET /favicon.ico HTTP/1.1" 404 209
Run Code Online (Sandbox Code Playgroud)

这意味着此重定向不起作用:

RewriteRule ^/favicon.ico /var/www/html/mywiki/favicon.ico [L]
Run Code Online (Sandbox Code Playgroud)

网站图标的正确重定向规则是什么?

我发现我可以将 favicon 放在 apache ( /var/www/html/favicon.ico) 的基本路径中。这可行,但我宁愿将所有内容都保留在我的mywiki目录中 ( /var/www/html/mywiki/favicon.ico)。

use*_*922 5

尝试这个:

RewriteRule ^/favicon\.ico$ /var/www/html/mywiki/favicon.ico
Run Code Online (Sandbox Code Playgroud)