我有一个nginx的配置:
server {
listen 80;
server_name example.com www.example.com;
location = / {
root /var/www/example.com;
index index.php;
}
location / {
root /var/www/example.com/Drupal;
index index.php index.html;
if (!-f $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
break;
}
if (!-d $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
break;
}
}
location ~ \.php$ {
set $php_root /var/www/example.com/Drupal;
if ($request_uri ~ ^/MassMail) {
set $php_root /var/www/example.com/MassMail;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $php_root$fastcgi_script_name;
}我在php中有两个应用程序:
/var/www/example.com/MassMail
中的第二个
我的服务器正确地提供了两个URL
example.com/ -> drupal博客
example.com/MassMail ->其他应用程序
但它不适合图像或JavaScript .(错误404)
为了服务img等,我测试了很多类似的东西(例如.):
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
expires 30d;
access_log off;
}也许缺少一个根目录,但是哪一个呢?
发布于 2012-06-24 09:08:59
您认为安装在/(根)中的MassMail,尝试为staitc文件添加第二个位置:
location ~* ^/MassMail.+.(jpg|jpeg|gif|css|png|js|ico)$ {
expires 30d;
access_log off;
root /var/www/xxx.com/MassMail;
}配置#2
location ~* ^/(.*)/.+.(jpg|jpeg|gif|css|png|js|ico)$ {
expires 30d;
access_log off;
root /var/www/xxx.com/$1;
}配置#3
将每个应用程序配置放在特殊文件中(例如用于MassMail):
应用程序/Massmail.conf
location ~ \.php$ {
set $php_root /var/www/xxx.com/Drupal;
if ($request_uri ~ ^/MassMail) {
set $php_root /var/www/xxx.com/MassMail;
}
location ~* ^/MassMail.+.(jpg|jpeg|gif|css|png|js|ico)$ {
expires 30d;
access_log off;
root /var/www/xxx.com/MassMail;
}nginx.conf
.....
include applications/massmail.conf;https://stackoverflow.com/questions/11175175
复制相似问题