首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对任意长路径的路径进行mod_write查询?

如何对任意长路径的路径进行mod_write查询?
EN

Stack Overflow用户
提问于 2019-05-28 04:16:59
回答 1查看 10关注 0票数 0

我正在用apache构建一个简单的API,我想把/really/long/path/api/captions.php?caption_id=blah映射到/really/long/path/api/captions/blah。不必在重写规则中指定完整路径是很重要的,因为无论我将代码部署到何处,我都希望它能正常工作。但是,我找不到/找不出.htaccess重写规则的工作示例,使我能够仅基于扩展的最后一部分进行匹配。

因此,假设我在一个名为api的目录中有captions.php,那么我需要在api中包含哪个.htaccess文件才能在不包含/really/long/path/的情况下完成此转换?

(我还希望能够将/really/long/path/api/captions.php映射到/really/long/path/api/captions//really/long/path/api/captions。)

我尝试过各种类似通配符的语法;下面是其中一种无效的尝试:

代码语言:javascript
复制
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)/?captions/(.*?)/?$ /captions.php?caption_id=$1 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /captions\.php\?caption_id=([^\&\ ]+)
RewriteRule ^(.*?)/?captions\.php$ /captions/%1? [L,R=301]

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-31 04:34:23

最后还是到了那里。这就是我们所需要的:

代码语言:javascript
复制
RewriteEngine On # Turn on the rewriting engine
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^captions/?$ captions.php [NC,L]
RewriteRule ^captions/(.*)/?$ captions.php?caption_id=$1 [NC,L]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56332019

复制
相关文章

相似问题

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