首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >apache2.2虚拟主机重写规则不匹配

apache2.2虚拟主机重写规则不匹配
EN

Stack Overflow用户
提问于 2013-11-18 16:57:15
回答 1查看 84关注 0票数 1

我在虚拟主机中有一个非常简单的重写规则:

代码语言:javascript
复制
RewriteRule ^/?([^.]+)\.([^(htm)]+)$ /$1.htm [L,QSA]
RewriteRule ^/(someotherrule)$ /me [L]

打电话给url:http://myurl.com/test.php

我希望规则与之匹配,并将url重写到http://myurl.com/test.htm

相反,我在我的rewriteLog中发现了这一点:

代码语言:javascript
复制
applying pattern '^/?([^.]+)\\.([^(htm)]+)$' to uri '/test.php'
applying pattern '^/(someotherrule)$' to uri '/test.php'
rewrite '/test.php' -> '/me'

显然,我的第一次重写规则模式有问题,但我看不出到底是什么。可能是因为我的大脑里有一个因睡眠不足而产生的结。所以,如果有人愿意花点时间指出我的错误,我会非常感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-18 17:31:38

您应该替换第一条规则,结果是:

代码语言:javascript
复制
RewriteEngine On
RewriteCond %{REQUEST_URI} !^[^.]+\.htm$ [NC]
RewriteRule ^/?([^.]+)\..*$ /$1.htm [L,QSA]

RewriteRule ^/(someotherrule)$ /me [L]

错误出现在^ ( htm)中,这意味着文件扩展名不包含字符:(、h、t、m ),而不是您预期的.htm。

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

https://stackoverflow.com/questions/20053365

复制
相关文章

相似问题

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