让我们从一个例子开始:
所请求的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
?
谢谢
答案 0 :(得分:1)
试试这个:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?query=$1 [NC,L]
如果您的网站不在您服务器的根目录中,请将RewriteBase
更改为/some/subdir/
。