【问题标题】:.htaccess file dropping parts when not using [R].htaccess 文件在不使用 [R] 时丢弃部分
【发布时间】:2016-06-10 01:04:27
【问题描述】:

我希望将结构为 /news/categories/CATEGORY 的 URL 重定向到 /news/categories/dynamic-categories.php?category=CATEGORY

而且我在大多数情况下都可以使用这个 .htaccess 文件规则:

RewriteRule ^news/categories/([a-zA-Z0-9\s]+)/?$ /news/categories/dynamic-categories.php?category=$1 [L]

但是,在某些情况下,类别名称有空格,这会分崩离析。像 /news/categories/with%20space 这样的东西被重写到我只看到类别 GET 参数的值为 with。

然而,奇怪的是,如果我将重定向标志 ([R]) 添加到其中,则规则有效(尽管使用重定向...)并且整个类别 (with space) 都会通过.

我需要在这里更改什么?

【问题讨论】:

  • 试试:RewriteRule ^news/categories/([^/]+)/?$ news/categories/dynamic-categories.php?category=$1 [L,QSA]
  • @anubhava 那也没有。对我来说,它仍然是一个词。

标签: apache .htaccess redirect mod-rewrite url-rewriting


【解决方案1】:

这实际上似乎是其他一些东西的产物。

我们重定向到的 PHP 页面是通过 CMS 嵌入的,看起来查询字符串在它所做的那些传输阶段被剥离了。重写规则一直都是正确的。

【讨论】:

    猜你喜欢
    • 2014-09-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 2012-07-05
    • 2014-09-07
    相关资源
    最近更新 更多