【发布时间】:2013-09-12 18:52:12
【问题描述】:
我有一个我想重写的 URL mysite.com/accounts?id=test 应该被定向到 mysite.com/accounts.php?id=test。我检查了我的mod_rewrite,它可以正常工作,因为其他页面可以正确写入。我目前正在尝试这个:
RewriteRule ^accounts?([.]+)$ accounts.php?$1 [NC,L]
这似乎不起作用。是因为正则表达式中的问号吗?我尝试用 \ 转义它,但它仍然不起作用。
任何帮助将不胜感激。
【问题讨论】:
-
为什么不完全丢掉问号,让 id 成为子文件夹或页面。然后规则将类似于: RewriteRule ^accounts/([.]+).html$ accounts.php?id=$1
-
也许我错了,但为什么 [] 之间的点?这和
(.*)不一样吗?我认为RewriteRule ^accounts?(.*)$ accounts.php?$1 [NC,L]应该可以工作。 -
@Rik,那种工作..现在至少找到 account.php 文件。 (它曾经给 404)。现在在第一行我写 die($_GET['id']) 只是为了测试,它返回空白。有什么想法吗?
-
@l3utterfly 我用解决方案创建了一个答案。
标签: php apache url mod-rewrite url-rewriting