【问题标题】:replace a string in url in .htaccess替换 .htaccess 中 url 中的字符串
【发布时间】:2014-10-13 20:34:09
【问题描述】:

我想将www.hostname.com/some path/?cpao=12 重定向到www.hostname.com/some path/?kmas=12

基本上将 cpao 替换为 kmas 并保持其他所有内容相同。

我们将不胜感激。

【问题讨论】:

    标签: apache .htaccess url mod-rewrite url-redirection


    【解决方案1】:

    通过httpd.conf启用mod_rewrite和.htaccess,然后把这段代码放到你.htaccessDOCUMENT_ROOT目录下:

    Options +FollowSymLinks -MultiViews
    # Turn mod_rewrite on
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{QUERY_STRING} ^cpao=([^&]*) [NC]
    RewriteRule ^ %{REQUEST_URI}?kmas=%1 [R,L]
    

    【讨论】:

      【解决方案2】:
      RewriteRule ^hostname.com/somepath/\?cpao([0-9]+)$ hostname.com/somepath/\?kmas=$1
      

      您在 htaccess 中使用的正则表达式 $1 是在第 1 组中捕获的数字

      【讨论】:

      • 谢谢!我将如何推断它是任何我总是希望 cpao 用 kmas 代替的路径。用 kmas 替换字符串 cpao。是否有可能在一个重写规则中捕获所有内容,还是我应该做多个?
      • 是的,正如我所说,它使用正则表达式,因此您可以使用它来捕获小写路径 ([a-z]+) 将其替换为 somepath
      • 它不会起作用,因为 RewriteRule 仅在去除前导斜杠后匹配 REQUEST_URI。
      • 我忘了这个谢谢@anubhava
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-06
      • 2012-07-10
      • 2015-06-13
      • 2014-03-09
      • 1970-01-01
      • 2021-06-29
      • 1970-01-01
      相关资源
      最近更新 更多