Mod rewrite 尽管在mod_rewrite中添加了QSA,$_GET仍然返回空变量

Mod rewrite 尽管在mod_rewrite中添加了QSA,$_GET仍然返回空变量,mod-rewrite,get,Mod Rewrite,Get,2013年2月1日更新:这个问题确实阻碍了我完成一些工作,所以如果其他人有建议,我将不胜感激 我试图让domain.com/notalone/viewpost/5/充当domain.com/notalone/viewpost.php?id=5 我当前的.htaccess是: RewriteEngine On RewriteRule ^notalone/viewpost/([0-9]+)/?$ /viewpost.php?id=$1 [QSA] 当前,当您访问/notalone/viewpos

2013年2月1日更新:这个问题确实阻碍了我完成一些工作,所以如果其他人有建议,我将不胜感激

我试图让
domain.com/notalone/viewpost/5/
充当
domain.com/notalone/viewpost.php?id=5

我当前的.htaccess是:

RewriteEngine On

RewriteRule ^notalone/viewpost/([0-9]+)/?$ /viewpost.php?id=$1 [QSA]
当前,当您访问
/notalone/viewpost/5/
时,页面会正确加载,但页面不会通过
$\u GET['id']

我尝试过的事情

  • 添加
    选项-Multiviews
    -->将导致404
  • 使用
    Rewritebase/
    -->无效
  • RewriteRule^viewpost/([0-9]+)/?$/viewpost.php?id=$1[QSA]
    -->无效

您说
viewpost.php
在notalone文件夹中,但htaccess假设它在根目录中

所以我认为应该是:

Options -MultiViews
RewriteRule ^notalone/viewpost/([0-9]+)/?$ /notalone/viewpost.php?id=$1 [QSA]

(请注意,我添加了多视图,因为这将是您的下一期。旧url之所以有效,是因为多视图。)

我应该补充一点,重写代码工作得非常好!只是空变量似乎给了我一些问题。在脚本顶部添加此选项以显示所有服务器变量:
.Done,但我到底在寻找什么?可能是这个吗<代码>[“查询字符串”]=>字符串(0)”
请求URI
应该是
/viewpost/5/
。这就是您试图与正则表达式匹配的内容。
[“REQUEST_URI”]=>string(21)“/notalone/viewpost/5/”
我已经解决了这个问题,问题是正如您所说的目录混乱!我把整个网站移到它自己的主机时,一切都完成了,果然问题消失了,只要我这样做!谢谢很高兴你找到了解决办法。祝您有个美好的一天。