<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    怎么設置 Nginx 子目錄偽靜態


    發現錯別字 2年前 提問
    回答
    1
    瀏覽
    1022
    請勿發布不友善或者負能量的內容。與人為善,比聰明更重要!
    回答數量: 1
    安全集成(專業級)SI/PL CISAW安全運維(專業級)

    一、LNMP:Nginx二級目錄偽靜態

    1、只需要添加這個二級目錄的偽靜態就可以了,這里以LNMP環境的 nginx.conf 配置文件為例子;

    只需要添加如下代碼:

    location /二級網站目錄/ {
      index index.html index.php;
      if (-f $request_filename/index.html){
      rewrite (.*) $1/index.html break;
      }
    
      if (-f $request_filename/index.php){
      rewrite (.*) $1/index.php;
      }
    
      if (!-f $request_filename){
      rewrite (.*) /二級網站目錄/index.php;
      }
      }

    2、重啟nginx;

    注意:LNMP的Nginx下面也有很多類似的偽靜態配置文件,我們也可以直接 include 有引入。

    例如:wordpress.conf、wp2.conf、dedecms.conf、discuz.conf 、ecshop.conf……等等,如下圖:

    圖片

    二、寶塔面板:Nginx二級目錄偽靜態

    注意:如果你用的是寶塔面板,你用第一種上面的偽靜態規則,是會報類似如下這樣的錯誤:

    nginx: [emerg] unknown directive “  index” in

    /www/server/panel/vhost/rewrite/www. xxx.com.conf:7

    nginx: configuration file /www/server/nginx/conf/nginx.conf test failed

    圖片

    如果你用的是寶塔面板,你的偽靜態只需要直接選擇“wp2“即可!

    這里很多人或許會有疑問?寶塔偽靜態wordpress與wp2的區別是什么?答案是:wordpress 是標準的偽靜態,wp2 是代表的把 WordPress 裝在子目錄的偽靜態。

    圖片

    rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
    if (!-e $request_filename){
        rewrite ^.+?(/wp-.*) $1 last;
        rewrite ^.+?(/.*\.php)$ $1 last;
        rewrite ^ /index.php last;
    }

    三、Nginx try_files實現二級目錄偽靜態

    當然,也可以用以下代碼實現偽靜態。至于 try_files 和 rewrite 哪個效率更高?目前不得而知,需要做進一步的了解。

    location /fujieace/ {
      index  index.php;
      try_files $uri $uri/ /fujieace/index.php?$args;
    }

    或者可以直接采用 LNMP 程序下的配置文件:wp2.conf;

    location /cmp/ {
            try_files $uri $uri/ /cmp/index.php?$args;
    }
    
    # Add trailing slash to */wp-admin requests.
    rewrite /wp-admin$ $scheme://$host$uri/ permanent;

    總結:

    有一點大家需要注意,現在nginx配置分為 http 和 https兩個地方,有時候很多人把配置偽靜態規則 放在的是 http server中的,結果 https server中卻忘記了配置,恰好他的網站又是以https為主的,這樣的話,會造成就算你重新加載了nginx配置后,偽靜態規則卻不會生效。

    回答所涉及的環境:聯想天逸510S、Windows 10。

    2年前 / 評論
    亚洲 欧美 自拍 唯美 另类