【发布时间】:2012-04-21 20:45:50
【问题描述】:
我正在使用 mod_rewrite 将 URL 的末尾传输到我的 php 脚本中,该脚本将充当 microcms。我的网址看起来像这样:
mysite.com/articles/some-article-about-css
这会将以下内容传递给我的 PHP 脚本 index.php:
index.php?action=read&article=some-article-about-css
我有问题:
我不确定使用 mod_rewrite 仅接受带破折号的字母数字的最佳方法是什么。我在互联网上找到了这条规则
((?:[a-z]+)?(?:[0-9]+)?-?)+,它显然不允许双破折号更好,但它又长又令人困惑。我可以使用另一个(更短、更快)的规则吗?我想验证此规则对于我要完成的任务是否有效。我对 mod_rewrite 不太擅长:
RewriteRule ^/articles/((?:[a-z]+)?(?:[0-9]+)?-?)+ /index.php?action=read&article=$1我可以使用什么规则,以便如果 /articles/ 之后的 url 不是有效的字母数字 /w 破折号 url,自动抛出 404 而不是传递给我的脚本?
【问题讨论】:
标签: php html regex mod-rewrite