RewriteRule匹配任何东西

时间:2013-11-18 13:23:46

标签: regex apache .htaccess mod-rewrite

我正在创建一个函数来报告我网站上发生的所有404错误,因此我可以重定向任何需要做的事情,我也记录用户之前的位置(如果可能的话)。一些URL真的很长很奇怪,例如。

news/read/gbbasketball+++++++++++++++Result:+chosen+nickname+%22hisapriepay%22;+success;

我需要将所有这些传递给我的检查代码以查看详细信息,因此我将对url进行编码并将其作为参数传递给我的控制器。

news%2Fread%2Fgbbasketball%2B%2B%2B%2B%2B%2B%2B%2B%2B%2B%2B%2B%2B%2B%2BResult%3A%2Bchosen%2Bnickname%2B%2522hisapriepay%2522%3B%2Bsuccess%3B

我需要一个RewriteRule来匹配任何角色并传递它。这就是我所拥有的,但似乎没有用。

RewriteRule ^developer/brokenLinks/inspect/(.*)$ /?module=developer&controller=brokenLinks&action=inspect&params=$1 [NC,L]

从我读过的内容(。*)应该匹配任何字符,但是当我加载URL时

http://cms.mywebsite.com/developer/brokenLinks/inspect/news%2Fread%2Fgbbasketball%2B%2B%2B%2B%2B%2B%2B%2B%2B%2B%2B%2B%2B%2B%2BResult%3A%2Bchosen%2Bnickname%2B%2522hisapriepay%2522%3B%2Bsuccess%3B

我只是得到一个带有Not Found错误显示的白色屏幕,而不是我的网站自定义404错误,它看起来像是默认的一个。

如何获取与模式匹配的网址?或者有更好的方法来做到这一点? URL没有我分配给他们的唯一,我可以重写整个日志代码来分配一个,但我宁愿不通过并重做所有我不需要的id。

编辑:看我的回答

1 个答案:

答案 0 :(得分:0)

我没有使用urlencode,而是将其更改为base64_encode / decode以通过URL传递,并按照上述规则正常运行。