.htaccess - 去掉 php 文件的问号?
问题描述
现在我有一个这样的网址:myurl.com/?u=b
. 但是我想摆脱问号,理想情况下甚至是u=
这样,我只剩下:myurl.com/b
我想知道这是否完全可以使用 htaccess 以及如何实现?提前谢谢。
解决方案
如果与其他 URL 和您的“索引页面”没有冲突,那么您的逻辑可以使用您服务上的根路径“/”来引用,这看起来非常简单:您需要一个单一的重写规则:
Rewrite Engine on
RewriteRule ^/?(.+)$ /?u=$1 [QSA,END]
这样的规则应该在 http 服务器的主机配置中实现。如果您无权访问它,您可以使用分布式配置文件(通常称为“.htaccess”),但这会带来性能损失。必须首先启用对此类文件的解释。检查那个。显然,还需要在 http 服务器中启用重写模块。
如果您的 http 主机中有一些文件在DOCUMENT_ROOT
您实现逻辑的地方,那么您可能希望将重定向添加到上述规则(显然,“index.php”只是这里的一个示例):
Rewrite Engine on
RewriteRule ^/?index\.php(?:/(.*))?$ /$1 [R=301,END]
RewriteRule ^/?(.+)$ /?u=$1 [END]
R=302
从临时重定向开始并且只有在确保一切按预期工作后才将其更改为R=301
永久重定向可能是有意义的。这可以防止令人讨厌的缓存问题。
推荐阅读
- list - 来自用户列表理解的输入
- javascript - 使用 webView 将数据从 Android 传输到 Asp.Net 后端
- laravel - Laravel 8.x + Google Drive API - 下载 pdf Raw Data 并结合然后生成一个 pdf 文件
- git - 在 Sublime Merge 中的另一个分支更新之上重新调整我的更改
- sql - 检查列是否有空值
- sql - <-> 运算符的文档/定义?
- java - 无法解析方法“putExtra(java.lang.String,com.example.talkmore.models.User)”
- git - 如何使用正确的 Git Diff 创建三级功能分支
- stylelint - Stylelint - 使 CSS 在子类定义之前出现
- amazon-s3 - 增量表中的查询