如何调用获取根目录之外的文件进行处理。我正在阅读有关别名的内容并且无法使其正常工作。所以香港专业教育学院尝试在该位置添加一个新的根本没有运气。
这是我的配置文件的缩减
server {
listen 443;
server_name domain.com;
---
root ../var/www/domain/public_html;
# works as being called form within the root
location /login {
rewrite ^/login /account/login permanent;
}
#need to
location /validation/code.png {
root /var/www/domain/include;
rewrite ^/validation/code.png /captcha/display_captcha.php;
}
}
答案 0 :(得分:3)
您正在将png文件重写为php文件。这将为/captcha/display_captcha.php创建一个子请求。你的配置中有php的位置吗?假设php位置使用通用根,当子请求命中时,将无法找到/captcha /display_captcha.php,您将收到404错误。
你最好的办法是复制php位置并专门为php文件创建一个php位置。
server {
listen 443;
server_name domain.com;
root /var/www/domain/public_html;
...
location = /validation/code.png {
rewrite ^/validation/code.png /captcha/display_captcha.php;
}
location ~ ^/captcha/display_captcha.php {
root /var/www/domain/include
...
# copy php processing code from normal php location.
}
}
更好的是,只需在你的html中直接使用'/captcha/display_captcha.php'并完全删除'/validation/code.png'。