2013-02-01 53 views
0

我试图让

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/时页面正常加载,但未通过$_GET['id']

事情我已经试过

  • 添加Options -Multiviews --->结果在404
  • 使用Rewritebase / --->没有影响
  • RewriteRule ^viewpost/([0-9]+)/?$ /viewpost.php?id=$1 [QSA] - - >没有效果
+0

将'[QSA]'和'?id = $ 1'组合起来可能会遇到一些挑战。你可以使用:'RewriteRule^viewpost /([0-9] +)/?$ /viewpost.php?id=$1&%{QUERY_STRING}'没有QSA –

+0

如果你将$ 1硬编码为'blah'它是否通过?它可能是你的$ 1变量不捕获你的想法。 –

+0

没有运气。这里是服务器变量的一个片段'[“QUERY_STRING”] =>字符串(0)“”[“REQUEST_URI”] =>字符串(21)“/ notalone/viewpost/5 /”' – Santi

回答

0

解决了这个问题。这个问题显然是我的目录的问题,因为当我将网站移动到它自己的主机(它自己的根目录而不是notalone子目录)时,一切似乎都像魅力一样。

0

尝试添加传递的标志,就像这样:

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

“PT”调整内部URL所以后来看到处理mod_rewrite的工作的结果,而不是原来的URL。

+0

刚刚尝试过,不幸的是它没有效果。 – Santi