apache - HTAcces 将目录格式重写为查询字符串
问题描述
我真的很难理解如何使用 htaccess / rewrite 将 www.domain.com/home/ 形式的 url更改为www.domain.com/index.php?route=home。我以为我破解了它,但是浏览器中显示的 url 也更改为显示查询字符串。我希望显示的 url 随着重写而改变。
我还想将http重定向到https。我看到其他网站实现了这一点(例如 stackoverflow)。
我目前的尝试是:
RewriteRule ^/?(\w*?)/?$ https://www.%{HTTP_HOST}/index.php?route=$1 [R=301,NC,L]
解决方案
请您尝试以下操作。根据您的示例编写。另外,请在将这些规则放入您的 .htaccess 文件后清除您的浏览器缓存。您正在使用R=301
重定向,这就是它在浏览器本身中将 url 更改为后端 url 的原因,您不需要它。
RewriteEngine ON
RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ index.php?route=$1 [L]
推荐阅读
- android - 使用 ADB 在 google chrome 上执行搜索
- java - 如何将徽标与操作栏中的左侧大小对齐?
- javascript - 除非我重新加载,否则无法提交表单
- angular - Angular 5中带有图像的选择框
- node.js - 使用 nodejs 和车把
- triggers - 如何在 JIRA 上接收来自 Bitbucket 的钩子并处理此钩子数据?
- android - 如何以 RectangleF 为边界裁剪位图
- java - 如何为liferay定义'java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver'
- c++ - 显示输出和输入的函数问题
- reactjs - Material UI TextField 自定义