无法从 url 中删除 .html
Cannot remove .html from url
我有一个静态站点,我正在尝试从 url 中删除 .html
,所以当我访问站点 www.example.com/home.html
时,我应该得到:www.example.com/home
.
这是我的项目结构:
project
docker
nginx
conf.d
default.conf
www
index.html
home.html
services.html
docker-compose.yml
这是 docker-compose.yml
文件:
version: '3.6'
services:
my-app:
container_name: trasauto_nginx
image: nginx:stable-alpine
restart: always
volumes:
- "./www/:/usr/share/nginx/html"
- ./docker/nginx/conf.d/:/etc/nginx/conf.d
expose:
- 80
networks:
default:
external:
name: proxy
这是 default.conf
:
server {
try_files $uri.html $uri $uri/ =404;
}
我试图从 url 中删除 .html
部分,但由于某种原因我得到:
404 not found
我做错了什么?
您需要在 Nginx 配置中添加更多行才能获得您想要的内容。我认为这个问题已经得到了详细的回答。
已编辑。
这是一个应该工作的 Nginx 配置示例
server {
listen 80;
index index.html;
root /usr/share/nginx/html;
location / {
if ($request_uri ~ ^/(.*)\.html) {
return 302 /;
}
try_files $uri $uri.html $uri/ =404;
}
}
您需要指定提供静态文件的根目录。
我有一个静态站点,我正在尝试从 url 中删除 .html
,所以当我访问站点 www.example.com/home.html
时,我应该得到:www.example.com/home
.
这是我的项目结构:
project
docker
nginx
conf.d
default.conf
www
index.html
home.html
services.html
docker-compose.yml
这是 docker-compose.yml
文件:
version: '3.6'
services:
my-app:
container_name: trasauto_nginx
image: nginx:stable-alpine
restart: always
volumes:
- "./www/:/usr/share/nginx/html"
- ./docker/nginx/conf.d/:/etc/nginx/conf.d
expose:
- 80
networks:
default:
external:
name: proxy
这是 default.conf
:
server {
try_files $uri.html $uri $uri/ =404;
}
我试图从 url 中删除 .html
部分,但由于某种原因我得到:
404 not found
我做错了什么?
您需要在 Nginx 配置中添加更多行才能获得您想要的内容。我认为这个问题已经得到了详细的回答
已编辑。 这是一个应该工作的 Nginx 配置示例
server {
listen 80;
index index.html;
root /usr/share/nginx/html;
location / {
if ($request_uri ~ ^/(.*)\.html) {
return 302 /;
}
try_files $uri $uri.html $uri/ =404;
}
}
您需要指定提供静态文件的根目录。