首页 > 解决方案 > 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]

标签: apache.htaccessredirectmod-rewriteurl-rewriting

解决方案


请您尝试以下操作。根据您的示例编写。另外,请在将这些规则放入您的 .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]

推荐阅读