问题
How do I remove index.php
from my Joomla URLs? For example:
http://domain.com/index.php/webpage
should become
http://domain.com/webpage
I've been following some guides that I've found but it all result in a redirect loop, 404 or internal server error. I need some guidance please.
Here is my current config (excluding failing attempts).
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;
}
回答1:
How do I remove
index.php
from my Joomla URLs? For example:http://example.com/index.php/webpage
should becomehttp://example.com/webpage
. I've been following some guides that I've found, but it all result in a redirect loop…
As explained at nginx redirect loop, remove index.php from url, you'd want something like this to make sure there aren't any redirect loops:
index index.php index.html index.htm;
if ($request_uri ~ "^/(.*)(?<=/)index\.php/?((?<=/).*)?$") { return 301 /$1$2; }
The above assumes that manually omitting the index.php
part of the URL is already handled correctly through the rest of your configuration.
来源:https://stackoverflow.com/questions/28997028/remove-index-php-from-joomla-urls-with-nginx