首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mod_rewrite in .htaccess,go/*,go?,go?/* work,但go/?*不工作

mod_rewrite in .htaccess,go/*,go?,go?/* work,但go/?*不工作
EN

Stack Overflow用户
提问于 2014-08-10 23:37:33
回答 1查看 60关注 0票数 0

我试着在网站上查看了一些mod_rewrite问题,但没有找到我的问题的答案(大多数问题的标题都是"mod_rewrite不起作用“,这无助于使这项任务变得更容易,希望我的标题更有帮助)。

这是my /somepath/..htaccess的内容:

代码语言:javascript
运行
复制
RewriteEngine On
RewriteRule ^go/(.*) /cgi-bin/goto.cgi?$1
    # ^^^ WORKS: /somepath/go/200001..
RewriteRule ^go?(.*) /cgi-bin/goto.cgi$1
    # ^^^ WORKS:  /somepath/go?200001..


ErrorDocument 404 /cgi-bin/goto.cgi?error404

在测试中,我让goto.cgi只返回$ENV{QUERY_STRING}、$ENV{QUERY_STRING_UNESCAPED}和$ENV{PATH_INFO}。目前,上述规则意味着当urls:

代码语言:javascript
运行
复制
/somepath/go/200001
/somepath/go?200001
/somepath/go?/200001

被访问,但当

代码语言:javascript
运行
复制
/somepath/go/?200001

访问,在这种情况下,$ENV{QUERY_STRING}、$ENV{QUERY_STRING_UNESCAPED}和$ENV{PATH_INFO}为空。

所以问题是,我能用什么规则

代码语言:javascript
运行
复制
/somepath/go/?200001

给我的脚本200001甚至是/?200001部分?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-10 23:55:43

第一条规则是销毁失败示例的查询字符串,因为$1将为空,替换中的空查询字符串将删除任何现有的查询字符串。

第二条规则是胡言乱语。

代码语言:javascript
运行
复制
RewriteRule ^go/(.+)$ /cgi-bin/goto.cgi?$1
RewriteRule ^go/?$ /cgi-bin/goto.cgi
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25234059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档