PHP .htaccess RewriteRule允许多种组合

时间:2016-01-10 17:37:53

标签: php apache .htaccess mod-rewrite

我的.htaccess文件存在问题。

如果我把它放在我的.htaccess规则中:

RewriteRule ^post/([^/]*)$ /the_post.php?id=$1 [L]

我能够像这样导航网址:
http://www.example.com/post/12

但如果我尝试:
http://www.example.com/post/12/

http://www.example.com/post/12/something-else-here

该页面尚未成立。

允许任何可能的网址组合的正确方法是什么?

  • http://www.example.com/post/12
  • http://www.example.com/post/12/
  • http://www.example.com/post/12/something-else-here

谢谢你的时间!

2 个答案:

答案 0 :(得分:1)

根据您当前的规则:

RewriteRule ^post/([^/]*)$ /the_post.php?id=$1 [L]

您的网址中/之后不能有任何post/[^/]*表示除/以外的任何字符。

您可以尝试以下规则:

RewriteRule ^post/([0-9]+) /the_post.php?id=$1 [L,QSA]

答案 1 :(得分:0)

您可以使用此规则替换您的规则:

RewriteRule ^post/([^/]+)(/[^/]*)?/?$ the_post.php?id=$1 [L,NC,QSA]