【问题标题】:mod_rewrite remove ?item=mod_rewrite 删除 ?item=
【发布时间】:2016-10-20 17:02:53
【问题描述】:

我想从 URL 中删除 "?item="。

所以,从

domain.com/?item=2

domain.com/2

如何简单去掉问号、键和等号?

【问题讨论】:

    标签: .htaccess url mod-rewrite


    【解决方案1】:

    通常在您的编程语言中,您会在 url 栏中写下您希望看到的最终 url,例如 domain.com/2,然后在您的 .htaccess 文件中,您将通过转换使这个无法识别的地址被您的程序识别发给domain.com/?item=2

    这个重定向会像这样完成: RewriteRule ^\d+$ index.php?item=$1 [L]

    [编辑]

    我知道如果我在上面编辑我的规则是不公平的 - 现在我意识到它不完整哈哈 - 所以我在这里改变它:

    RewriteRule ^(\d+)/?$ index.php?item=$1 [L]

    我想添加到已接受答案的唯一内容是您可以将 [0-9]+ 替换为 \d+

    【讨论】:

      【解决方案2】:

      你可以像这样重写;

      [apache]
      RewriteEngine On
      
      RewriteRule ^/([0-9]{1})[/]?$ index.php?item=$1
      

      【讨论】:

        【解决方案3】:

        转换

        • /?item=2

        • /2

        你可以使用这条规则:

        RewriteEngine on
        #1) externally redirect the request "/?item=numbers" to "/numbers"
        RewriteCond %{THE_REQUEST} /\?item=([^\s]+) [NC]
        RewriteRule ^ /%1? [L,R]
        #2) internally rewrite "/numbers" back to "/?item=numbers"
        RewriteRule ^([0-9]+)/?$ /?item=$1 [L]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-12-12
          • 2011-08-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多