有2个正则表达式重写,但其中一个不起作用

时间:2011-02-20 00:40:59

标签: regex apache .htaccess mod-rewrite

Theese是我的规则。第一个是工作,但第二个不工作。

它正在我的旧服务器上运行。我现在改变了我的服务器它不起作用。

RewriteRule ^oyunlar/([0-9]+)/([_0-9a-z-]+) games.php?id=$1&title=$2
RewriteRule ^post/([_0-9a-z-]+) post.php?up=$1

可能出错?

在我的php端,$ _GET完全空了。

这是整个文件;

RewriteEngine on
RewriteRule ^uye user.php
RewriteRule ^oyunlar/([0-9]+)/([_0-9a-z-]+) games.php?id=$1&title=$2
RewriteRule ^post/([_0-9a-z-]+) post.php?up=$1
RewriteRule ^tv tv.php
RewriteRule ^thumb timthumb2.php

ErrorDocument 404 /404.php

这就是我要求的网址:myurl.com/post/login

我正在检查查尔斯的状态。 ^ post部分正在工作但查询部分不是。

编辑:我刚刚做了几次测试,实际上这两个规则都没有正常工作,不知何故,我的文件可以在没有扩展名的情况下工作,如:/hello.php或/ hello

其他信息:这是我自己的私人服务器,debian lenny + ispCP

2 个答案:

答案 0 :(得分:0)

@siniradam

尝试从此

更改正则表达式
([_0-9a-z-]+)

到这个

([-_0-9a-z]+)

如果一个连字符应该是允许的字符之一,则它必须在列表中第一个,而不是最后一个。

答案 1 :(得分:0)

最后我解决了我的问题。它是由 MultiViews

发生的

某种程度上存在重写和多视图冲突。我只是从.conf文件中禁用它。

谢谢大家。