所以我有两个要解决的问题。首先,我试图理解NGINX并将其用于重定向以及其他所有操作;但是,如果我尝试从php / html文件中删除扩展名,则只会下载该文件。如果我使用其他方法尝试(不尝试文件扩展名),它只会给我404。我不确定是什么问题,还是我做错了什么。
首先,我将显示我的删除php文件扩展名问题:
server {
listen 443;
server_name XXX.XX.XX.XX;
root /var/www/html;
location / {
try_files $uri $uri.html $uri/ @extensionless-php;
index index.html index.htm index.php;
}
location ~ \.php$ {
try_files $uri =404;
}
location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}
}
这是我用来解决上述问题的其他代码(但仅给我404错误)
server {
listen 443;
server_name XXX.XX.XX.XX;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
XXX.XX.XX.XX是我的服务器IP。
PS:我已经读到我需要首先使用底部部分才能使顶部部分正常工作。
来源包括:
How to remove both .php and .html extensions from url using NGINX?
请帮忙。
更新: Kuldeep KD-770 / var / www / html(不是解决方案,但谢谢) Jignesh Joisar-尝试端口80(失败,但通常要感谢)
答案 0 :(得分:0)
在/ var / www / html上检查必要的权限 您可以使用
更改权限chmod -R 770 /var/www/html/
还要检查目录的所有者,您可能还必须更改该目录,这取决于您的nginx使用的用户。
chown -R user:group /var/www/html
答案 1 :(得分:0)
在80
端口尝试此
server {
listen 80 default_server;
root /var/www/html/;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm;
server_name localhost;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.php$is_args$args;
}
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}