http://domain.com?keyword=value
...很容易捕获,因为它是一个简单的GET请求,但是,我想捕获我在/
之后直接传递的值,如下所示:
http://domain.com/value
我可以像这样获取这些值:
preg_match("/[^\/]+$/", "http://www.domain.com/value", $matches);
$last_word = $matches[0]; // value
...但是,该网址会生成404
,因为它会查找名为value
的目录,该目录显然不存在。
答案 0 :(得分:1)
一个简单的URL重写就可以了。你可以删除那个丑陋的正则表达式。
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA,NC]
<强>解释强>
RewriteEngine on
- 设置重写引擎
RewriteBase /
- /表示项目/网站的根目录,在本案例中是域之后的所有内容
RewriteCond %{REQUEST_FILENAME} !-f
- 不是实际文件
RewriteCond %{REQUEST_FILENAME} !-d
- 不是实际目录
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA,NC]
- 将域后的所有内容发送到url key GET全局变量
现在您可以使用$_GET['url']
获取网址。当然,您可以将密钥更改为GET。