【发布时间】:2011-10-25 11:20:31
【问题描述】:
所以我有错误是通过 url 传递的,例如
index.php?error=nojs
然后会被PHP解析返回错误信息,例如:请启用Javascript
我在我的 .htaccess 中使用以下行来使 url 更易于管理
RewriteRule ^ERROR_(.*)$ index.php/?error=$1&%{QUERY_STRING} [L]
它使我的 URL 看起来像这样: site.com/ERROR_nojs
问题是,这只对root有效,
index.php?error=nojs works fine however
test/index.php?error=nojs does not?
那么如何转换每个目录的变量呢?
谢谢。 (我的原始脚本处理数百个错误并过滤掉可能对输出给用户有用的错误。将它们重定向到索引只是为了让他们可以看到一个带有错误消息的小错误)
EDIT:
正如 Shai Mishali 指出的那样,在 ERROR 起作用之前删除了“^”。
RewriteRule ERROR_(.*)$ index.php/?error=$1&%{QUERY_STRING} [L]
但我忘了告诉你我还有另一个变量 ?page=
我需要获取该 vairbale 并将其添加到 url 以使其正常工作..
例如:
index.php?page=home&error=nojs
= site.com/home/ERROR_nojs
所以
www.site.com/?page=home&error=nojs = www.site.com/home/ERROR_nojs
或
www.site/?page=about&error=unknown = www.site.com/about/ERROR_unknown
【问题讨论】:
标签: php .htaccess url mod-rewrite