0

我有一个网站,它使用前端控制器将流量重定向到某些文件,因此我可以使用 SEO 友好的 URL,但是网站上有一些静态页面,我不希望流量远离:

我目前有以下.htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.exmple.com/$1 [L,R=301]
ErrorDocument  404  /controller.php

这似乎工作正常:

  • 所有流量都被转移到www.example.com
  • 并且任何没有找到的网页都被定向controller.php到处理;
  • 任何实际存在的东西,例如www.example.com/about_us.php仍然有效的东西;

问题是即使页面仍然发送并正确显示,它仍然报告 404 错误 - 它看起来对最终用户没有任何不同,但是当 Google 机器人看到 404 并假设有没有别的了。

有什么方法可以简单地重定向除某些页面列表之外的所有流量,还是有更优雅的解决方案?

任何帮助、想法、评论等都将受到欢迎

4

1 回答 1

1
RewriteEngine On
ErrorDocument  404  /controller.php

RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule .* index.php/$0 [PT]

你应该通过 index.php... 否则下面的行应该工作而不是上面的行。

RewriteRule .* $0 [PT]
于 2011-08-02T17:57:26.707 回答