.htaccess 基于项目名称重写URL

.htaccess 基于项目名称重写URL,.htaccess,url,rewrite,.htaccess,Url,Rewrite,我想了解文件名的重写是如何工作的。我有一个名为item.PHP的PHP文件。如果用户选择一个他得到的项目,例如item pencil.php,item book.php等等 我在htaccess中发现以下内容: RewriteEngine On RewriteBase /my/path RewriteRule ^item-.*-(.*).php show_item.php?id=$1 有人能详细解释一下这是怎么回事吗?文件show_item.php获取一个id参数。此规则仅对路径/my/pat

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

我在htaccess中发现以下内容:

RewriteEngine On
RewriteBase /my/path
RewriteRule ^item-.*-(.*).php show_item.php?id=$1
有人能详细解释一下这是怎么回事吗?文件
show_item.php
获取一个
id
参数。此规则仅对路径
/my/path
有效
*
似乎代表字符的任意数字,
(.*)
表示可能多次出现。但是
铅笔
的名字从何而来

RewriteEngine On
RewriteBase /my/path
RewriteRule ^item-.*-(.*).php show_item.php?id=$1
说明:重写规则检查URL是否与给定模式匹配。模式表示url(不带主机,且
重写库
部分)应以“
项-
”开头,后跟任何
*
,然后是“-”,之后允许使用任何字符
(.*)
,然后是一个字符
,然后是“php”,最后可以包含任何内容

因此,如果您输入“http://www.yourdomain.com/my/path/item-www-ssss.php.php“在浏览器中,它将
项www-ssss.phpphp
视为
重写规则的第一个参数。it将模式应用于它。它与给定的模式匹配,并且给定的模式将被第二个参数
show_item.php?id=$1
替换。因为
$1
ssss
,所以您的最终结果将是
http://www.yourdomain.com/my/path/show_item.php?id=ssss.php

注意URL末尾的
.php

说明:重写规则检查URL是否与给定模式匹配。模式表示url(不带主机,且
重写库
部分)应以“
项-
”开头,后跟任何
*
,然后是“-”,之后允许使用任何字符
(.*)
,然后是一个字符
,然后是“php”,最后可以包含任何内容

因此,如果您输入“http://www.yourdomain.com/my/path/item-www-ssss.php.php“在浏览器中,它将
项www-ssss.phpphp
视为
重写规则的第一个参数。it将模式应用于它。它与给定的模式匹配,并且给定的模式将被第二个参数
show_item.php?id=$1
替换。因为
$1
ssss
,所以您的最终结果将是
http://www.yourdomain.com/my/path/show_item.php?id=ssss.php

注意URL末尾的
.php