首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不捕获反向引用的RewriteRule

不捕获反向引用的RewriteRule
EN

Stack Overflow用户
提问于 2020-03-13 10:05:41
回答 1查看 221关注 0票数 1

我在一个RewriteRule文件中有一个.htaccess,但无法使它正确工作:

代码语言:javascript
复制
RewriteRule ^(?!(redirect-build)) redirect-build/index.php?url=$1

没有捕获反向引用$1,Apache将重写URL参数,其中没有值。下面是日志文件的一个片段:

代码语言:javascript
复制
[Fri Mar 13 13:46:26.254929 2020] [rewrite:trace2] [pid 10612:tid 1344] mod_rewrite.c(477): [client 127.0.0.1:58838] 127.0.0.1 - - [domain/sid#1c4a1bda5b0][rid#1c4a2df8180/initial] [perdir D:/document-root/path/to/directory/] rewrite 'zalety-jablek' -> 'redirect-build/index.php?url='
[Fri Mar 13 13:46:26.254929 2020] [rewrite:trace3] [pid 10612:tid 1344] mod_rewrite.c(477): [client 127.0.0.1:58838] 127.0.0.1 - - [domain/sid#1c4a1bda5b0][rid#1c4a2df8180/initial] split uri=redirect-build/index.php?url= -> uri=redirect-build/index.php, args=url=

有什么解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-13 10:54:00

示例:example.com/some-path应该解析为:example.com/redirect-build/index.php?url=some-path

在这种情况下,您需要调整RewriteRule模式以使其匹配&捕获值,如下所示:

代码语言:javascript
复制
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ redirect-build/index.php?url=$1 [L,QSA,NC]

  • ([\w-]+)是捕获组,用于匹配和捕获任何单词字符的1+,或者使用hyphen
  • RewriteCond从重写的

跳过现有的文件和目录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60668439

复制
相关文章

相似问题

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