检测单段重写规则apache


Detect Single Segment RewriteRule apache

我被困在一个非常基本的东西,我试图重定向一个单一的段url到一个页面

RewriteRule /([A-Za-z0-9]+)$ index.php?c=profile&val=$1 [NC,L]

对于像

这样的url可以正常工作
sitename.com/myurl

但问题是它对

这样的url也是有效的
sitename.com/myurl/something

  sitename.com/myurl/something/x/y/z

我希望它只适用于主机名之后的单个段,如果我在开始时使用^符号它根本不起作用

任何帮助都将是非常感激的。

谢谢

您仍然必须使用^,但必须省略前面的/

 RewriteRule ^([A-Za-z0-9]+)$ index.php?c=profile&val=$1 [NC,L]

为了与旧的mod_rewrite版本兼容,您经常会看到像^/?这样的习语。但是目前的apache mod_rewrite已经剥离了前导斜杠(从REQUEST_URI中,rewriterrules主要从此操作)。