2010-10-17 38 views
1

对于上帝的爱,我似乎无法得到这个mod_rewrite正常工作。我不要在这里试试暴力试验和错误,而要问这里。mod_rewrite条目的适当位置在哪里?

  1. 我想mod_rewrite规则适用于所有域。
  2. 我想在httpd.conf
  3. 我想摆脱这种WWW病毒(搜索引擎优化的目的)的mod_rewrite的条目:

    http://www.example.com>http://example.com

  4. 我想摆脱指数。 HTML(搜索引擎优化,谷歌索引它,而不是只是域名):

    http://www.example.com/index.html>http://example.com

    http://www.example.com/some/index.html>http://example.com/some/index.html

域是内部<virtualhost>条目。我无法弄清楚在哪里放置什么或哪一个应该优先考虑。正如我所提到的,我想将这两条规则应用于服务器中的所有域。

ssl.conf加剧了这种情况。所有这些都需要输入到ssl.conf吗?当有2个重定向时会发生什么:

http://www.example.com/index.html > http://example.com/index.html > http://example.com 

非常感谢。这很快就变得非常混乱。

玛丽亚

回答

0

这解决了对我来说。正如我所怀疑的那样,在应用rewriterule的情况下存在很大差异。包括中庸在内的许多人似乎都不知道这一点。

http://wiki.apache.org/httpd/RewriteContext

在独立的阶段请求执行Apache服务器的交易。虽然这对用户和管理员来说通常是透明的,但当规则集放置在不同的上下文中时,它对mod_rewrite的行为有影响。为了简化一下,当规则放置在VirtualHost块(或主服务器上下文中)时,它们在服务器尚未将请求的URI映射到文件系统路径之前进行评估。相反,当规则放置在.htaccess文件或主服务器配置中的目录块中时,它们将在此阶段发生后进行评估。