斜杠后捕获URL

时间:2014-11-24 07:41:58

标签: php .htaccess

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的目录,该目录显然不存在。

1 个答案:

答案 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。