【问题标题】:.htaccess add trailing slash after domain.htaccess 在域后添加斜杠
【发布时间】:2012-03-25 04:10:07
【问题描述】:

如何在域后重新强制使用正斜杠 - 情况如下:

http://www.domain.com

成为

http://www.domain.com/

目前我有这样的事情:

<IfModule mod_rewrite.c>

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

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


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /index.php [L]

</IfModule>

我尝试了不同的方法,但无法让它发挥作用。

【问题讨论】:

    标签: .htaccess http-status-code-301


    【解决方案1】:

    http://example.comhttp://example.com/ 是同一个 URL。你根本不需要做任何事情。详情请见RFC 3986

    编辑:尽管完全正确,但莫名其妙地被否决了,请特别参阅section 6.2.3

    以下四个 URI 是等价的:

    【讨论】:

    • 嗯 - 这不完全正确。如果您进行 SEO,您会发现这是两个不同的页面/位置,您的内容将被搜索引擎发现为重复。
    • 不,这是完全错误的。您可能正在考虑http://example.com/foohttp://example.com/foo/ 之间的区别。问题与域的根有关。这些 URL 是相同的。它们指的是完全相同的资源。
    【解决方案2】:

    大多数(如果不是所有)浏览器默认添加/。然而,浏览器最近决定对用户隐藏http:///(但它仍然会发送它们)。另一件事是,如果 / 不存在,几乎所有 apache 安装中安装的 mod_dir 已经执行 301 重定向。所以我觉得你想解决一些从一开始就不是问题的事情。

    【讨论】:

    • Apache 已经完成了这项工作。检查HTTP头,你会看到。
    • 如果安装了 mod_dir,Apache 就可以完成这项工作 - 否则必须以某种方式重新加强它,我需要确保它以任何一种方式工作。那么您是否(或者您不)知道使用 htaccess 强制它的语法?
    • 没有 mod_dir 的 apache,在大多数情况下是毫无用处的。我不会浪费时间为现实生活中从未发生过的假设问题创建解决方案,这甚至不是问题(谷歌知道 domain.com 与 domain.com/ 相同)。跨度>
    猜你喜欢
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    • 2012-05-20
    相关资源
    最近更新 更多