我有一个我希望重写的 URLmysite.com/accounts?id=test
应定向到mysite.com/accounts.php?id=test
. 我检查了我的mod_rewrite
,它可以正常工作,因为其他页面可以正确写入。我目前正在尝试这个:
RewriteRule ^accounts?([.]+)$ accounts.php?$1 [NC,L]
这似乎不起作用。是因为正则表达式中的问号吗?我尝试用 \ 转义它,但它仍然不起作用。
任何帮助,将不胜感激。
我有一个我希望重写的 URLmysite.com/accounts?id=test
应定向到mysite.com/accounts.php?id=test
. 我检查了我的mod_rewrite
,它可以正常工作,因为其他页面可以正确写入。我目前正在尝试这个:
RewriteRule ^accounts?([.]+)$ accounts.php?$1 [NC,L]
这似乎不起作用。是因为正则表达式中的问号吗?我尝试用 \ 转义它,但它仍然不起作用。
任何帮助,将不胜感激。
首先我认为([.]+)
是一样的(.*)
。
其次,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]
.