【问题标题】:Stop query string from being appended to URL停止将查询字符串附加到 URL
【发布时间】:2017-06-16 06:34:57
【问题描述】:

我的网站有一个重写规则,将域名后面的所有内容作为参数传递:

RewriteRule ^([0-9a-zA-Z_=/&\-]+)?$ index.php?page=$1   [L,QSA]

但是去的时候:

mydomain.co.uk/mypage

..它在 URL 之后(在浏览器地址栏中)附加查询字符串,如下所示:

mydomain.co.uk/mypage?page=mypage

我认为这只是 Chrome 很奇怪......但它在 IE 中也是如此。

有人吃过这个吗?任何帮助都会很棒我只需要它不要将查询字符串附加到末尾并保持为“mydomain.co.uk/mypage”

【问题讨论】:

  • 您使用的是 codeigniter 对吗?因为我认为重写规则不会像你认为的那样做。
  • 不,这是我自己的事。一切正常,不会因为这个问题而中断。我只是希望它不要将查询字符串推送到 URL,这样我就可以保持 URL 漂亮
  • 我的理解是重写规则采用 URL mysite.com/my_wonderful_page 并将其作为 mysite.com/index.php?page=my_wonderful_page 传递给服务器。对吗?
  • 是的,这是可行的=最后的东西
  • 您还有哪些其他 .htaccess 规则?这 1 行不能是您的 .htaccess 中唯一的内容。

标签: .htaccess


【解决方案1】:

您可以使用条件来检查请求的文件是否存在。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php?page=$1   [L,QSA]

我用htaccess.mwl.be 测试了这个代码,用于这个请求的url http://mydomain.co.uk/mypage?page=mypage,它重定向到http://mydomain.co.uk/index.php?page=mypage

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 2013-07-20
    • 2013-01-09
    相关资源
    最近更新 更多