首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有嵌套文件的.htaccess RewriteRules

带有嵌套文件的.htaccess RewriteRules
EN

Stack Overflow用户
提问于 2014-08-06 12:18:29
回答 1查看 50关注 0票数 1

htaccess

代码语言:javascript
复制
RewriteEngine On
Options +FollowSymLinks
RewriteBase /

RewriteRule ^api/task/([^/]+)/?$ api/task/index.php?id=$1 [L,QSA]
RewriteRule ^api/task/skills/([^/]+)?$ api/task/skills.php?id=$1 [L,QSA]

文件夹结构

代码语言:javascript
复制
/api/task/index.php
/api/task/skills.php

网址使用情况

代码语言:javascript
复制
/api/task/1
/api/task/skills/1

当我尝试访问/api/task/skills/1时,它将触发index.php的内容而不是skills.php

有人能帮我指出我哪里出了问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-06 12:20:20

这是因为第一个规则中的正则表达式:mod_rewrite循环:^api/task/([^/]+)/?$,它也匹配/api/task/skills.php/api/task/index.php

试试这个:

代码语言:javascript
复制
RewriteEngine On
Options +FollowSymLinks
RewriteBase /

# skip further rules for real files/directories
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^api/task/([^/]+)/?$ api/task/index.php?id=$1 [L,QSA]
RewriteRule ^api/task/skills/([^/]+)?$ api/task/skills.php?id=$1 [L,QSA]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25160206

复制
相关文章

相似问题

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