2

如何index.php从我的 Joomla URL 中删除?例如:

http://domain.com/index.php/webpage

应该成为

http://domain.com/webpage

我一直在遵循我找到的一些指南,但这都会导致重定向循环、404 或内部服务器错误。我需要一些指导。

这是我当前的配置(不包括失败的尝试)。

server {
    listen [::]:80;
    server_name www.domain.com;
    return 301 http://domain.com$request_uri;
}

server {
    listen [::]:80;
    server_name domain.com;

    root /usr/share/nginx/www;
    index index.php index.html index.htm;

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

    location ~/favicon.ico {
        access_log off;
        log_not_found off;
    }

    location ~ \.php$ {
        try_files $uri /index.php;
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    access_log /var/log/nginx/$host-access.log;
    error_log /var/log/wpms-error.log;
}
4

1 回答 1

1

如何index.php从我的 Joomla URL 中删除?例如: http://example.com/index.php/webpage 应该变成 http://example.com/webpage. 我一直在遵循我找到的一些指南,但这一切都会导致重定向循环......

正如nginx 重定向循环中解释的那样,从 url 中删除 index.php,您需要这样的东西来确保没有任何重定向循环:

index index.php index.html index.htm;
if ($request_uri ~ "^/(.*)(?<=/)index\.php/?((?<=/).*)?$") {    return  301 /$1$2;  }

以上假设手动省略index.php部分 URL 已通过其余配置正确处理。

于 2016-07-03T00:50:28.960 回答