首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RewriteRule将url转换为使用不同的php文件

问RewriteRule将url转换为使用不同的php文件
EN

Stack Overflow用户
提问于 2018-06-29 14:12:35
回答 1查看 28关注 0票数 1

在我的PHP应用程序的.htaccess文件中,我使用一个简单的重写来翻译我的URL:

代码语言:javascript
复制
/shop/hats/detroit/

至:

代码语言:javascript
复制
index.php?url=/shop/hats/detroit/

使用以下重写规则:

代码语言:javascript
复制
# Rule 1
RewriteRule ^(.*)$ /repos/nvp/httpdocs/index.php?url=/$1 [L,QSA]

我希望下面的重写也能奏效:

代码语言:javascript
复制
# Rule 2
RewriteRule ^pic/(.*)$ /repos/nvp/httpdocs/get_image.php?pic=$1 [L,QSA]

但这两条规则是相互覆盖或相互冲突的。他们各自独立工作,但不是一起工作。如果url以pic/开头使用规则2而不是规则1,我如何使用所有url来使用规则1?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-01 07:36:54

这是因为模式(.*)匹配所有uris。为了避免规则重写,您需要重新排序您的规则,并将特定规则放在第一位。

代码语言:javascript
复制
# specific rules
RewriteRule ^pic/(.*)$ /repos/nvp/httpdocs/get_image.php?pic=$1 [L,QSA]
#catch-all rules
RewriteRule ^(.*)$ /repos/nvp/httpdocs/index.php?url=/$1 [L,QSA]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51103712

复制
相关文章

相似问题

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