2017-08-01 115 views
0

我對nginx重寫有不同的問題。nginx rewirte在兩個不同的文件夾(文件夾+子文件夾不同rewirte)

在apache中我使用htaccess文件的根目錄和子目錄。

在根文件夾使用:

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.+)$ index.php?req=$1 [QSA,L] 
</IfModule> 

和子文件夾cp

但是當我試圖通過這個來配置nginx的:

,但我做的嘗試:

server { 
    listen  xx.xx.xx.xx:80; 
    server_name mydomain.net www.mydomain.net; 
    root  /home/admin/web/mydomain.net/public_html; 
    index  index.php index.html index.htm; 
    access_log /var/log/nginx/domains/mydomain.net.log combined; 
    access_log /var/log/nginx/domains/mydomain.net.bytes bytes; 
    error_log /var/log/nginx/domains/mydomain.net.error.log error; 

    #first block 
    location/{ 

    if (!-e $request_filename){ 
     rewrite ^(.+)$ /index.php?req=$1 last; 
     } 

    } 
    #second block  
    location /cp { 

    if (!-e $request_filename){ 
     rewrite ^(.+)$ /router.php?get=$1 last; 
     } 

    } 
} 

但是,當我嘗試下載強制PHP。

這個問題不像其他的問題,我搜索到很多關於這一點,我無法找到答案

,當我在根去除第二塊重寫工作。

+0

如果你的PHP處理的位置? –

+0

@AlexanderTolkachev我必須處理位置根目錄下的'/'和'cp'子文件夾 –

回答

0

對於位置問題,您應該檢查this answer。對於處理PHP你應該配置PHP-FPM,並加入到nginx的配置PHP處理地點:

location ~ \.php$ { 
     include fastcgi_params; 
     fastcgi_pass unix:/var/run/php-fpm.sock; 
     fastcgi_param SCRIPT_FILENAME /var/nginx/$fastcgi_script_name; 
     fastcgi_index index.php; 
    } 
相關問題