8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

保留 GET 参数的 RewriteRule

Ilya Golshtein 1月前

25 0

这个重写规则有什么问题?重写规则^api/(.+)$ api/index.php?url=$1 [L] 我只是想在 api/ 之后和其余获取参数之前添加 \'index.php?url=\'。api/image/u...

这个重写规则有什么问题?

RewriteRule ^api/(.+)$ api/index.php?url=$1 [L]

我只是想在 api/ 之后和其余获取参数之前添加 \'index.php?url=\'。

api/image/upload&arg1=1&text=lorem+ipsum

api/index.php?url=image/upload&arg1=1&text=lorem+ipsum

使用 (.+) 获取 api/ 之后的所有内容有什么问题?

帖子版权声明 1、本帖标题:保留 GET 参数的 RewriteRule
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Ilya Golshtein在本站《.htaccess》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我认为你必须在正则表达式之前写上你的域名。像这样:

    RewriteRule ^(.+).com/api/(.*)$ "$1.com/api/index.php?url=$2" [R=301,L]
    
  • 在该页面上搜索“redirect|R [=code](强制重定向)”。如果您想为重定向指定准确的 HTTP 响应代码,则可以使用此方法。

  • R=301 在这里如何工作?它不在 httpd.apache.org/docs/2.0/mod/mod_rewrite.html 的文档中

  • 我也没有尝试进行重定向,只是获取 api/ 和第一个 & 之间的文本以获取以 \'index.php?url=\' 为前缀的字符串,并保留其余的 GET 参数

  • 我之前用过 [L],但没什么区别。我的问题是 apache2 报告说唯一的 get 参数是 [url] => index.php ,其他所有参数都消失了,url 参数应该是 'image/upload'。当我使用规则 ^api/([a-zA-Z0-9/_]+)$ 时,url 参数是 'image/upload',但我丢失了所有其他 GET 参数。

  • 您正在做些什么来停止无限递归?

     RewriteRule ^api/(.+)$ api/index.php?url=$1 [R=301,L]
    

    或类似的东西

  • 太棒了!这解决了我的问题!我还找到了一个 JS 函数来对所有非 a-zA-Z0-9_ 字符进行 URL 编码 cass-hacks.com/articles/code/js_url_encode_decode

  • RewriteRule 上的正则表达式仅针对 URL 的路径部分运行,而不是查询参数。幸运的是,有 [QSA] flag 可以保留现有的查询参数。

  • ^api/([a-zA-Z0-9/_\&\=\%]+)$ 可以工作,但不能用于不同语言的特定字符,如åäöøæé 等等......这就是为什么我希望 ^api/(.+)$ 可以工作。. 应该意味着除换行符或字符串结尾之外的任何字符,所以我不明白为什么它不起作用。

返回
作者最近主题: