.htaccess - 在 htaccess 中从 URL 中删除不需要的字符

标签 .htaccess mod-rewrite replace

我们当前的 htaccess 设置正确地将 url 转换为:site.com/page.php?sid=Friend 到 site.com/Friend

然而,由于不相关的疏忽,我们几乎所有的 URL 都被双重索引为 site.com/Friend> 因为大于号是一个特殊字符,它不会调用 page.php,所以 > 需要在 htaccess 中被剥离,无法在 page.php 中完成。更重要的是,它们的索引方式如下:site.com/Friend%3E 也可能需要删除。

我们想要的是有另一个指令来查找 >(或 %3E)的结尾,将其剥离,然后重定向到没有那个结尾的变量 > 本质上是这样 site.com/Friend> (或 site.com/Friend%3E)仍然指向 site.com/Friend

感谢您的帮助。

最佳答案

将此添加到您的规则顶部:

RewriteRule ^/?(.*)>$ /$1 [L,R=301]

您可以使用 >,因为在 RewriteRule 中匹配时 URI 会被解码。

关于.htaccess - 在 htaccess 中从 URL 中删除不需要的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11651243/

相关文章:

apache - 多个重写条件 : How to chain them before a set of rules?

Java Hangman 游戏 - 替换角色

Java regex - 如果不是单词开头,则从字符串中删除短语

python - 替换 Pandas 数据框中的特定列值

php - Magento产品页面上的ERR_TOO_MANY_REDIRECTS

apache - 特定 HTTP 重定向帮助 - "Request exceeded the limit of 10 internal redirects"

php - Zend Framework 1 apache2 虚拟主机配置

php - htaccess 中的 Hash(#) 标签重定向

php - .htaccess 拒绝从脚本下载文件

.htaccess - 如何禁用单个文件夹的 CakePHP 重写路由,以便它可以用作第二个应用程序的位置?