我想求助一个关于 url 路由(.htaccess)的问题~

2014-12-19 01:59:28 +08:00
 xiaolvmu
以前访问我网站首页的时候,地址栏有一个index.php,挺烦人的。我用这样的.htaccess表达式去除了index.php:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,L]

之后网站申请到了免费证书,我就想把http强制重定向https。于是在.htaccess底部加入这样的代码:
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]

然后,.htaccess就成了这样:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
FileETag none
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/css application/x-javascript
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 3 months"
</IfModule>

RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]

结果……index.php又出来了-_-||
怎么才能在强制http重定向到https的同时,去除首页的index.php呢?

请忽略deflate/expires两个模块下的内容,这些主要是优化网站缓存/脚本设置的,与url路由关系不大。

我还是小白中的小白……真心求助
2364 次点击
所在节点    问与答
7 条回复
xiaolvmu
2014-12-19 02:01:54 +08:00
xiaolvmu
2014-12-19 02:02:36 +08:00
但是这条信息中的方法不起作用-_-#
hgc81538
2014-12-19 02:09:36 +08:00
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
xiaolvmu
2014-12-19 10:45:00 +08:00
@hgc81538 非常感谢你!
可是这段代码看上去重写了所有的URI,应该是不正确的。
xiaolvmu
2014-12-19 10:45:30 +08:00
@hgc81538 刚我试了一下。这样写,所有二级页面都打不开了......
MinonHeart
2014-12-19 11:00:59 +08:00
这个可以参考WordPress的默认htaccess设置,另外内页无法访问是HTTPS那段代码写错了,具体参考这里
https://me.hub.moe/archives/735
xiaolvmu
2014-12-19 13:47:05 +08:00
@MinonHeart 感谢你!我试一下≥﹏≤

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

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

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

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

© 2021 V2EX