我尝试在nginx上运行我的网站,所以前面我做了一些配置:
server {
listen 80;
server_name domain.com;
root /var/www/domain.com/www;
index index.php;
# Use FastCGI with PHP-FPM for all things PHP
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/domain.com/www$fastcgi_script_name;
include fastcgi_params;
}
}
这没关系。问题是当我尝试运行管理区域时。管理面板位于子目录/var/www/domain.com/www/admin
中,并且有一个index.php
文件。在apache中,我只使用重写规则放置了另一个.htaccess
文件:
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css|htc)$ index.php
一切正常,但如何在nginx中完成?
我的网站是使用正面和管理区域构建的。当您转到domain.com/some_url.html并且管理区域位于domain.com/admin/some_url.html时,前端会运行。目录结构是这样的:
site/
/module/
/public_html/
index.php
/admin/
index.php
因此,当您运行domain.com/admin/时,所有内容都应该提交到/admin/index.php,但现在当我转到domain.com/admin/时会显示管理区域但是当我点击某些链接时所有的trafik都是提交到前面的index.php文件 最诚挚的问候!
答案 0 :(得分:2)
好的,我现在明白了,
试试这个
server {
listen 80;
server_name domain.com;
root /var/www/domain.com/www;
location /admin/ {
rewrite ^ /index.php?$request_uri;
}
# Use FastCGI with PHP-FPM for all things PHP
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/domain.com/www$fastcgi_script_name;
include fastcgi_params;
}
}