准备使用 php 做个网站,域名是 dev.hellotools.org
,根目录下有四个文件,分别是,
index.php
,就是主页了about.php
,关于页面404.php
,也就是 404 页面了/a/b/page.php
,a 和 b 是目录,意思就是根目录下有个二级目录,里边有个 page.php
现在我想实现以下功能,
dev.hellotools.org
时,浏览器上地址栏显示 dev.hellotools.org
,且浏览器显示 index.php
的内容;dev.hellotools.org/about
时,浏览器上地址栏显示 dev.hellotools.org/about
,且浏览器显示 about.php
的内容;dev.hellotools.org/nono
时,浏览器上地址栏显示 dev.hellotools.org/nono
,且浏览器显示 404.php
的内容;dev.hellotools.org/a/b/page
时,浏览器上地址栏显示 dev.hellotools.org/a/b/page
,且浏览器显示 /a/b/page.php
的内容于是我的 nginx 配置如下,
server
{
listen 80;
server_name dev.hellotools.org;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/dev.hellotools.org;
charset utf-8;
error_page 404 /404.php;
## enable php path info
location ~ [^/]\.php(/|$)
{
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
}
location / {
try_files $uri $uri.php /index.php;
}
}
搞不清楚我的配置哪里有问题,在访问 about
页面的时候,竟然文件直接下载了,404 也出不来,不知道哪里出问题了。
每个页面的内容都写清楚了,就几个简单的汉字和字母。比如你打开的是 index.php
,那么页面内容就有:index.php。其它都是类似的。
折腾一晚上了,实在找不出了,望有了解的大兄弟指点一下。
1
dilu 2020-10-19 13:27:28 +08:00
```
try_files $uri $uri.php /$url.php; ``` 试试? |
2
dilu 2020-10-19 13:31:09 +08:00
try_files $uri $uri/ /$url.php;
如果还是不行试试这个 |
3
zjsxwc 2020-10-19 13:55:26 +08:00
仅仅只是去掉.php 后缀的话
``` location / { try_files $uri $uri.html $uri/ @extensionless-php; index index.html index.htm index.php; } location @extensionless-php { rewrite ^(.*)$ $1.php last; } ``` |
4
Ethson OP |
5
Lax 2020-10-19 14:09:13 +08:00
直接下载的问题,加一句 default_type text/html;
|