【发布时间】:2011-08-21 01:10:29
【问题描述】:
使用 mod_rewrite,什么 RewriteRule(s) 可以使以下两个示例正常运行?
示例 #1 (一个术语):
http://example.net/dir/thanks
-to-
http://example.net/dir/index.php?a=thanks
示例 #2 (两个术语):
http://example.net/dir/thanks=stackoverflow
-to-
http://example.net/dir/index.php?a=thanks&b=stackoverflow
注意:.htaccess 文件位于域根目录之外的 /dir/ 中。
我已经接近了:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)=([^/]*)/?$ index.php?a=$1&b=$2 [L]
但是,要使用示例 #1,需要尾随“=”(我想避免)。我尝试将“=”更改为“=?”在正则表达式中使其成为可选,但是当它在例如 #1 时它会失败,例如 #2。
非常感谢您考虑我的问题。我是 mod_rewrite 和 regex 的新手,真的很难过。
【问题讨论】:
标签: regex apache .htaccess mod-rewrite url-rewriting