htaccess规则不是每次都有效,有时是404

时间:2013-01-29 20:09:23

标签: apache mod-rewrite

好的,这有点奇怪,我的htaccess规则似乎每次都不起作用。有时它会将人们发送到404页面。但如果他们再次尝试相同的链接,那么它就会起作用。

这是我的规则:

  RewriteRule ^articles/(.+?)\.([0-9]+)/?$ /index.php?module=articles_full&aid=$2&title=$1 [N,NC,QSA]

  RewriteRule ^articles/(.+?)\.([0-9]+)/page\=([0-9]+)?$ /index.php?module=articles_full&aid=$2&title=$1&page=$3 [N,NC,QSA]

任何人都可以看到这些规则有什么问题吗?它基本上将index.php?module = articles_full& aid = 123& title = title转换为/articles/title.123

我也有这个将旧链接重定向到新链接,不知道是否有人知道他们是否有时会发生冲突?

  RewriteCond %{QUERY_STRING} threads/(.*)\.([0-9]+)/*

  RewriteRule index.php /articles/%1\.%2?from=oldSite [R=301,L]

指向我的完整htaccess的链接:http://pastebin.com/G0AxxiHb

查看今天(30日)的错误日志,这些内容突然出现在我身上:

[Wed Jan 30 09:44:30 2013] [error] [client 2.229.9.52] File does not exist: /home/gamingon/public_html/articles, referer: http://plus.url.google.com/url?sa=z&n=1359539066078&url=http%3A%2F%2Fwww.gamingonlinux.com%2Farticles%2Frolling-survival-a-new-alpha-funded-game-on-desura.1681&usg=V4xV32LxoWJ1cPOvrD_XZgftgN8.

那个看起来像我在G +上发布的链接,我猜是因为它在网址的末尾加了“& usg = V4xV32LxoWJ1cPOvrD_XZgftgN8”?

[Wed Jan 30 11:34:43 2013] [error] [client 100.43.83.149] File does not exist: /home/gamingon/public_html/$10,000 to finish on Kickstarter

这似乎错过了“/ articles /”,id和它的名字中有空格?不确定是怎么发生的,也许有人手动输入了它?

似乎也是其中的一部分:

[Wed Jan 30 06:32:38 2013] [error] [client 94.246.88.189] File does not exist: /home/gamingon/public_html/articles

您认为我可能需要在两个/文章/规则中添加一些内容来检查链接是否会将内容添加到最后?喜欢来自twitter,g +等的链接?

0 个答案:

没有答案