如何将URL字符串转换为PHP变量

时间:2012-04-20 23:29:42

标签: php regex .htaccess mod-rewrite

让我们从一个例子开始:

所请求的URL将是:www.domain.com/product/hdd/samsung

我希望有一个重写规则来获取index.php并将www.domain.com之后的所有内容保存到php变量中。因此,替代页面将是例如www.domain.com/index.php?query=product/hdd/samsung。但我无法写出正确的规则。

我试过了:

RewriteRule ^/(.*)$ index.php?query=$1 [NC,L]

上面的代码不起作用。我想在index.php中使用PHP代码中的查询:

if(isset($_GET["query"] )) {
   $query=$_GET["query"];
}

我发现,有可能通过$query代替$_SERVER['QUERY_STRING']获取mod_rewrite,我是对的吗?

对于我的PHP应用程序,变量$query是关键的,因为它用于加载模板。

问题: 你会给我什么解决方案?要使用$_SERVER变量或mod_rewrite? 如果mod_rewrite,如何写出正确的RewriteRule

谢谢

1 个答案:

答案 0 :(得分:1)

试试这个:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?query=$1 [NC,L]

如果您的网站不在您服务器的根目录中,请将RewriteBase更改为/some/subdir/