2

好的,这有点奇怪,我的 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+ 上发布的链接,我猜是因为它在 URL 的末尾添加了“&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

你认为也许我需要在两个 /articles/ 规则中添加一些东西来检查将东西添加到末尾的链接吗?喜欢来自 twitter、g+ 等的链接?

4

0 回答 0