根据项目名称重写URL

时间:2012-03-21 20:55:47

标签: .htaccess url rewrite

我想了解文件名的重写是如何工作的。我有一个名为item.php的PHP文件。如果用户选择了他获得的项目,例如item-pencil.phpitem-book.php等等。

我在htaccess中发现了以下内容:

RewriteEngine On
RewriteBase /my/path
RewriteRule ^item-.*-(.*).php show_item.php?id=$1

任何人都可以详细解释这是如何工作的吗?文件show_item.php获取id参数。此规则仅对路径/my/path有效。 .*似乎代表字符的任意数字,(.*)代表probalby多次。但名称pencilbook来自哪里?

1 个答案:

答案 0 :(得分:1)

RewriteEngine On
RewriteBase /my/path
RewriteRule ^item-.*-(.*).php show_item.php?id=$1

说明:重写规则检查URL是否与给定模式匹配。模式说url(没有主机,rewritebase部分)应该以“item-”开头,后跟任何.*,然后是“ - ”,之后允许任何字符(.*) ,然后是一个字符.,后跟“php”,最后可以有任何内容。

因此,如果您在浏览器中输入“ http://www.yourdomain.com/my/path/item-www-ssss.php.php ”,则会考虑{{1} }作为item-www-ssss.phpphp的第一个参数。它将模式应用于它。它匹配给定的模式,给定的模式将被第二个参数RewriteRule替代。因为show_item.php?id=$1$1,所以您的最终结果将是ssss
请注意网址末尾的http://www.yourdomain.com/my/path/show_item.php?id=ssss.php