【发布时间】:2013-01-13 17:13:14
【问题描述】:
我正在尝试编写一个 .htaccess 规则来重定向所有以 Fizzle/xxxx_showabstract 结尾的 URL(其中 xxxx 可以是任意字符串)。我写的规则是:
RewriteRule .*/Fizzle/(.*)_showabstract$ /abstractdisplay.php?journal=Fizzle&article=$1
但这对我来说虽然简单明了,但似乎与预期的 URL 不匹配。我究竟做错了什么?所有帮助将不胜感激。
【问题讨论】:
-
任意xxxxx中允许使用哪些字符?正如你所拥有的,它会匹配
Fizzle/other/dir/_showabstract之类的东西,我认为你不需要。 -
另外请发布一个它现在匹配的示例,它不应该匹配(加上您定义的任何其他重写规则)
-
不,我绝对不希望它与您给出的示例相匹配,因此我的 (.*) 需要进一步限制。然而,问题不是我的模式匹配得太多,而是它根本不匹配任何东西(即 Apache 似乎忽略了它并继续后续的模式)。你知道吗?我现在意识到这似乎是我的 Mac 上运行的 MAMP Apache 的问题;在我的 Unix 服务器上,同样的模式工作得很好!
-
嗯,我注意到你没有
[L],你应该在该规则的末尾。确保你有RewriteEngine On。
标签: regex .htaccess mod-rewrite