1

我有一个我希望重写的 URLmysite.com/accounts?id=test应定向到mysite.com/accounts.php?id=test. 我检查了我的mod_rewrite,它可以正常工作,因为其他页面可以正确写入。我目前正在尝试这个:

RewriteRule ^accounts?([.]+)$ accounts.php?$1 [NC,L]

这似乎不起作用。是因为正则表达式中的问号吗?我尝试用 \ 转义它,但它仍然不起作用。

任何帮助,将不胜感激。

4

1 回答 1

2

首先我认为([.]+)是一样的(.*)

其次,RewriteRule 已经从 URL 中删除了您的 query_string。
您可以使用%{QUERY_STRING}.

所以你的代码是

RewriteRule ^accounts?(.*)$ accounts.php?%{QUERY_STRING} [NC,L]

您可以创建一个accounts.php,使用以下内容进行测试:

<?php
echo "<pre>";
print_r($_SERVER);
exit();
// rest of your code
?>

然后检查你的[QUERY_STRING].

于 2013-09-09T13:30:44.913 回答