非常简单的mod_rewrite帮助

时间:2011-09-21 10:47:05

标签: .htaccess mod-rewrite

我有一个名为fb的目录和一个名为like.php的脚本。我想使用mod_rewrite将get-id传递给like-file。

mypage.com/fb/like.php?id=5 mypage.com/fb/like/5

我的(不工作)htaccess看起来像这样:

RewriteEngine on  
RewriteRule /fb/like/([0-9]+) /fb/like.php?id=$1  

有人看到这里有什么问题吗?

1 个答案:

答案 0 :(得分:0)

尝试在匹配开始时删除斜杠并替换类似的模式:

RewriteRule fb/like/([0-9]+) fb/like.php?id=$1

mypage.com/是域名,因此匹配的字符串为fb/like/5

还可以考虑在匹配字符串开头使用克拉,使其与fb匹配,但不匹配fffb

 RewriteRule ^fb/like/([0-9]+) fb/like.php?id=$1

这是mod_rewrite的 short guide ,我发现它很有帮助。

修改后续问题:

要匹配mypage.com/something/fb/like/5,您可以执行以下操作:

RewriteRule ^([^/]+)/fb/like/([0-9]+) $1/fb/like.php?id=$2

这会将第一个目录保存为$ 1。 [^/]+表示匹配一个不是斜杠的一个或多个字符。将此.htaccess文件放在域的根目录中。

或者,您可以使用倒数第二个规则并将该.htaccess文件放在“something”子目录中。希望这是有道理的。

或者你可以编写一个简单地匹配like.php/([0-9]+)的规则,这样无论目录路径是什么样子它都能正常工作。您可以更加通用,并将其应用于任何PHP文件,而不仅仅是like.php。这实际上取决于您希望您的网站如何运作。