htaccess 像 Stack Overflow 一样重写 url

UFO*_*UFO 3 php regex apache .htaccess mod-rewrite

Stack Overflow 生成重写 URL,

所以我需要知道如何像 Stack Overflow 一样做到这一点?

http://stackoverflow.com/questions/9168364/how-to-rewrite-seo-friendly-urls-like-stackoverflow => 200 ok.(without trailing slash)
http://stackoverflow.com/questions/9168364/how-to-rewrite-seo-friendly-urls-like-stackoverflow/ => 200 ok.(with trailing slash)
http://stackoverflow.com/questions/9168364/ => 301 redirect.
http://stackoverflow.com/questions/9168364  => 301 redirect.
Run Code Online (Sandbox Code Playgroud)

我怎么能用 mod_rewrite 做到这一点?

我有这样的事情:

RewriteRule ^([0-9]+)[/]([^/]*) ./cat.php?id=$1&title=$2 [L,NC]



mydomain.com/999 => 404 not found.
mydomain.com/999/ => 200 ok.
mydomain.com/999/test => 200 ok.
mydomain.com/999/test/test2 => 200 ok.
mydomain.com/999/test/test2/test3 => 200 ok.
mydomain.com/999/test/test2/test3/test4 => 200 ok.
Run Code Online (Sandbox Code Playgroud)

请让我知道我如何更改 RewriteRule ?

anu*_*ava 6

您需要通过使尾部斜杠可选来稍微调整您的正则表达式。使用这个规则:

RewriteRule ^([0-9]+)(?:/([^/]*))?/?$ ./cat.php?id=$1&title=$2 [L,NC]
Run Code Online (Sandbox Code Playgroud)