0

让我们从一个例子开始:

所以请求的 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

谢谢

4

1 回答 1

1

试试这个:

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

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

于 2012-04-20T23:40:43.547 回答