【发布时间】:2015-11-29 16:36:24
【问题描述】:
我在stackoverflow 或google 上找不到任何关于=$1 含义的信息。我得到了肤浅的信息,但对于像我这样的初学者却一无所获。它有什么作用?
如果我有这样的事情:
www.website.com/profile.php?simon
名字simon是否对应$1变量和为什么是1?
我是这样理解的:
-
(.*) profile/profile.php?id=$1
粗体对应:
-
www.website.com/profile.php?id=simon
改写后变成:
www.website.com/profile/simon
我错过了什么吗?
编辑:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_FILENAME}.php -d
RewriteRule ^(.*)$ /profile/index.php?id=$1
有变化吗
localhost/test/index.php?philip 到: 本地主机/测试/配置文件/菲利普
我尝试输入网址,但失败了。我了解正则表达式的作用,但不知何故我完全混淆了替换的工作原理。
【问题讨论】:
-
这是一个反向引用,在模式中的第一组
()中捕获的内容。如果有另一个组,那就是$2,等等。 -
@AbraCadaver (.*) 意味着与请求匹配的任何内容都必须替换为之后的内容。在我的示例中,profile.php 是否被替换为 id=$1。反向引用到底是什么意思?我的意思是在多远
-
@Asperger 请在我的回答中查看我的示例以获取类似
http://www.example.com/profile/philip的 URL
标签: php .htaccess mod-rewrite