【问题标题】:duplicate pages due to trailing slash由于斜杠导致重复页面
【发布时间】:2014-01-10 02:15:54
【问题描述】:

由于斜杠问题,我的某些页面重复。 例如 socktail.com/shopsocktail.com/shop/ 是重复的和可访问的。 请让我知道如何解决此问题。我是网络技术的新手,甚至不知道我的 .htaccess 文件是否正常。
以下是我的.htaccess的内容,

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|javascript|images|robots\.txt)
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?socktail\.com)$ [NC]
RewriteRule .? {REQUEST_URI} [R=301,L]

【问题讨论】:

    标签: .htaccess seo duplicates


    【解决方案1】:

    看起来几乎所有请求都由您的 index.php 文件处理。您需要将所有带有斜杠的请求重定向到不带斜杠的请求,或者您需要以相反的方式执行此操作。

    #Remove all trailing slashes
    RewriteRule ^(.*)/$ /$1 [R=301,L]
    

    或者……

    #Make sure all requests end with one
    RewriteRule ^(.*[^/])$ /$1/
    

    并在RewriteBase 之后添加该规则,但在您的第一个RewriteRule/RewriteCond 之前。

    【讨论】:

      【解决方案2】:

      您可以使用 301 添加删除斜杠的规则。保留所有规则,如下所示:

      RewriteEngine On
      
      # remove trailing slash
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
      RewriteRule ^ /%1 [R=301,L,NE]
      
      # existing rule
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond $1 !^(index\.php|javascript|images|robots\.txt)
      RewriteRule ^(.+)$ /index.php?/$1 [L]
      

      【讨论】:

        猜你喜欢
        • 2019-06-16
        • 2017-05-05
        • 1970-01-01
        • 2015-04-20
        • 1970-01-01
        • 2020-12-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多