我有这样的配置:
Alias /blog /usr/share/wordpress
Alias /blog/wp-content /var/lib/wordpress/wp-content
<Directory /usr/share/wordpress>
Options FollowSymLinks
AllowOverride Limit Options FileInfo
DirectoryIndex index.php
Order allow,deny
Allow from all
</Directory>
<Directory /var/lib/wordpress/wp-content>
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory>
一般情况下我会遵循这个程序帮助中心。问题是,当我重新启动时,apache2
我收到消息
"The Alias directive in /etc/apache2/sites-enabled/wordpress at line 2 will probably never match because it overlaps an earlier Alias."
我已在test.php
上添加了文件/var/lib/wordpress/wp-content
。如果我尝试mydomain.com/blog/wp-content/test.php
,我会得到error 404
。这意味着一般来说,我会错过所有插件/主题静态文件。
有什么办法可以解决这个问题?
答案1
交换这些 Alias 指令的顺序,以便最具体的指令首先出现:
Alias /blog/wp-content /var/lib/wordpress/wp-content
Alias /blog /usr/share/wordpress
来自文档:
[...] 别名和重定向按照它们在配置文件中出现的顺序进行处理,第一个匹配的优先。
因此,当两个或多个指令应用于同一子路径时,必须首先列出最具体的路径,以便所有指令都能生效。例如,以下配置将按预期工作:
Alias /foo/bar /baz Alias /foo /gaq
但是如果按顺序反转上述两个指令,/foo 别名将始终在 /foo/bar 别名之前匹配,因此后一个指令将被忽略。
答案2
添加
ServerName mydomain.com
ServerAlias www.mydomain.com
在conf文件的顶部