怎么去掉 URL 后面的 index.php

2016-08-08 14:25:51 +08:00
 wex
程序是 typecho
我现在用 xx.com 访问一切正常,没有 xx.com/index.php
如果我用 www.xx.com 访问就会跳转到 xx.com/index.php
我的意思是如何只跳转到 xx.com ,去掉 index.php 这个后缀?谢谢😜
2458 次点击
所在节点    问与答
22 条回复
baiyi
2016-08-08 15:11:34 +08:00
重定向
wex
2016-08-08 15:13:35 +08:00
@baiyi 用了 301 跳转,要不然也不会访问 www.xxx.com 跳转到 xx.com/index.php
bdbai
2016-08-08 15:24:53 +08:00
我猜服务器是 Apache ,用 rewrite 。
baiyi
2016-08-08 15:37:46 +08:00
啊 那 301 跳转到 xx.com 不就好了吗 为什么非要指定 index.php
wex
2016-08-08 15:59:15 +08:00
@bdbai nginx linux 一件安装包


@baiyi 我想要去掉 index.php ,看着难受
DT27
2016-08-08 16:01:07 +08:00
找到 nginx 配置文件,贴出 301 代码
popu111
2016-08-08 16:04:51 +08:00
301 跳的时候不带参数可解,但对用户体验不好。。。算了就个自己写了自己看的博客还在意那些干嘛(自嘲脸
xuhaoyangx
2016-08-08 16:09:39 +08:00
nginx rewrite
wex
2016-08-08 16:14:30 +08:00
xuhaoyangx
2016-08-08 16:20:36 +08:00
重写要你的程序支持
popu111
2016-08-08 16:28:01 +08:00
@wex 把第二个 if 挪到第一个 if 前面去
wex
2016-08-08 20:45:40 +08:00
@popu111 没用啊~~
popu111
2016-08-08 21:27:36 +08:00
@wex 嗯,,,是在下刚刚傻了,请把 if ($host != 'xxx.re')所属 block 中那个 rewrite 语句里的$1 去掉。

这法子简单粗暴但有点小副作用,这个 rewrite 现在有这样的功能:
www.xxx.re/test.html 重写为 xxx.re/test.html
去掉之后就变成:
www.xxx.re/不管有什么 一律重写为 xxx.re/

还请自行取舍,当然也可以写段逻辑判断$1 是不是 index.php 啥的,但这似乎没什么卵用,尤其在面向一个个人博客的时候
wex
2016-08-08 21:52:03 +08:00
@popu111 并没有用,有没有其他办法啊,这个办法估计行不通了
DT27
2016-08-09 08:34:56 +08:00
'/usr/local/nginx/conf/rewrite/typecho.conf'
楼主贴一下这文件的代码。
wex
2016-08-09 12:48:11 +08:00
wex
2016-08-09 12:48:27 +08:00
DT27
2016-08-09 13:28:56 +08:00
第一个和第二个 if 段删掉,仅保留最后一个。
wex
2016-08-09 14:12:33 +08:00
@DT27 没效果,你的博客怎么弄得
DT27
2016-08-09 14:31:00 +08:00
@wex 我的是 Apache 。感觉就是这的问题啊,你换个浏览器或者换台电脑试试,跳转规则也有缓存。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/297873

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX