Nginx

nginx 上的 Joomla - 刪除斜杠無法正常工作

  • March 22, 2021

我正在使用 nginx 1.10.3 執行 joomla 3.7.3,我在刪除尾部斜杠時遇到了問題。我打開了“搜尋引擎友好的 URL”,以及“使用 URL 重寫”。

我的 nginx conf 文件中有這些東西:

server {
   listen 80 default_server;
   listen [::]:80 default_server;

   root /var/www/folder;

   index index.php index.html index.htm default.html default.htm;

   rewrite ^/(.+)/$ /$1 permanent;

   server_name 000.000.00.000;
   server_name_in_redirect off;

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

   location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
       return 403;
       error_page 403 /403_error.html;
   }

   location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
   }

   location ~ /\.ht {
       deny all;
   }
}

它正在起作用,但只是部分起作用。網址如:

http://000.000.00.000/category/肯定變成了 http://000.000.00.000/category

但是當我嘗試訪問http://000.000.00.000/administrator/它現在無法訪問,並且 Chrome 說 ERR_TOO_MANY_REDIRECTS

我不知道如何解決這個問題,我也嘗試過替換:

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

有了這個:

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

但是當我嘗試訪問http://000.000.00.000/administrator/>時,伺服器將我重定向回我的首頁<http://000.000.00.000/

請幫我解決這個問題。

目前rewrite發生在之前和不管try_files裡面location

在測試靜態文件後,您可以嘗試將其放在某個位置,例如

   location / {
       try_files $uri $uri/ @joomlaurls;
   }

   location @joomlaurls {
       rewrite ^/(.+)/$ /$1 permanent;
       try_files $uri $uri/ /index.php?$args;
       error_page 404 = /index.php;
   }

聚會很晚,但是在尋找了幾個小時的解決方案之後,我似乎已經通過在“/”前面添加一個簡單的“~”來解決這個問題。

#Joomla public frontend application
location ~ / {
   try_files $uri $uri/ /index.php?$args;
}

現在,我的 SEF 網址中是否有斜杠並不重要。

引用自:https://serverfault.com/questions/862219