草庐IT

optimization - 基于 'user' -url 的网站是否会导致 Google/搜索引擎出现问题?

coder 2024-02-27 原文

我目前维护一个网站的后端 php 代码,该网站允许我们的销售代表销售产品和服务。如果销售代表处于事件状态,他/她将获得一个“自定义”网站 URL,该 URL 基本上将特定站点上的任何事件标记为该代表。销售仅在代表性网站上收集(我们这样做是为了“保护”我们的员工并确保他们觉得我们没有在公开的父网站上背后销售)。

例如:

  • www.site.com 可能会突出显示所有可用的产品和服务,但不会让客户能够购买

  • www.site.com/SOMEREPCODE 其中 SOMEREPCODE 是特定代理的唯一标识符,提供相同的选项但可以销售该产品。这些销售代表有数千名,因此有数以千计的链接指向相同的页面和内容。

最近,关于我们是否也应该向前端销售开放网站,存在很多争论。我们的行业非常特殊,所以我们不太担心网络购物者的销售损失,但我相信它们存在。我们的一些前端开发人员在页面上有“noindex,nofollow”代码,我们被告知这是为了防止 Google 和其他人将网站“列入黑名单”,因为它们试图让多个链接都指向相同的内容(想想 SOMEREPCODE 代表1000 名销售代表,页面几乎完全相同,但显示的姓名和联系电话除外)。

编辑 - 显示 htaccess 文件

#if file or directory do not exist, try as an repid
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z-]+)$ index?Rep=$1 [QSA,NC,L]

上面的 htaccess 逻辑会检查以确保输入的代码不是现有文件或目录。如果不是,则将 SOMEREPCODE 作为变量存储到 index?Rep=SOMEREPCODE。

在我的索引页顶部,我包含一个函数,用于检查 Rep 的值是否是有效的销售代表以及他们是否活跃。如果无效或未激活,页面将重定向到出现错误的登录页面。如果代表处于事件状态并且存在,则在设置适当的 SESSION 变量后页面将继续加载。

索引包含

<?php
if(isset($_GET['Rep']) && $_GET['Rep'] != NULL) {

    //DB connectors called
    $sql = "SELECT * FROM reps WHERE repcode = ? AND status = 'Active' LIMIT 1";
    $stmt = $db->prepare($sql);
    $stmt->execute(array($_GET['Rep']));

    while ($row = $stmt->fetch()) {
        $_SESSION['repname'] = $row['repname'];
        //collect other rep information
    }

    if( !isset($_SESSION['repname']) && empty($_SESSION['repname']) ) {
        header("Location: unavailable");
        exit;
    } else {

        $_SESSION['sales'] = "Y";
    }

} elseif( !isset($_SESSION['sales']) && !isset($_GET['Rep']) ) {
    $_SESSION['sales'] = "N";
}
?>

在这种情况下,索引页面根本没有改变,只有在 $_SESSION['open'] == 'Y' 存在的情况下“显示”的站点区域。

这是真的吗?有没有办法处理这种情况,让我们也可以开放网站进行网络销售?

最佳答案

如果它不是完整的镜像,那不是什么大问题。

最佳实践是

www.site.com/SOMEREPCODE -> 设置销售 cookie -> HTTP 301 重定向 -> www.site.com

基本上所有/SOMEREPCODE 都重定向到 URL 的规范版本,只有 URL 的规范版本才会传送给 google。如果您无法执行 HTTP 301 重定向,请尝试规范元素 http://support.google.com/webmasters/bin/answer.py?hl=en&answer=139394

使用规范元素,流程看起来像这样

www.site.com/SOMEREPCODE -> 设置销售 cookie -> HTTP 200(传送页面内容)-> 页面有 <link rel="canonical" href="http://www.site.com/"/>在 HEAD 部分

去掉 "nofollow"它没有意义,并且贬低了从这些页面指向其他页面的所有链接。如果您使用 HTTP 301 重定向(或规范元素)noindex是不必要的(但不会造成伤害)。

但事实上:如果你不知道销售底池有多少。您丢失了并且不确定如何处理这种情况(+显然您的开发人员不了解 SEO 但认为他们这样做是因为他们使用 "nofolow" 并谈论“黑名单”)您应该考虑咨询一个严肃的 SEO。任何好的 SEO 都可以为您提供所有这些问题的足够好的答案。

关于optimization - 基于 'user' -url 的网站是否会导致 Google/搜索引擎出现问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9059732/

有关optimization - 基于 'user' -url 的网站是否会导致 Google/搜索引擎出现问题?的更多相关文章

  1. ruby-on-rails - rails : "missing partial" when calling 'render' in RSpec test - 2

    我正在尝试测试是否存在表单。我是Rails新手。我的new.html.erb_spec.rb文件的内容是:require'spec_helper'describe"messages/new.html.erb"doit"shouldrendertheform"dorender'/messages/new.html.erb'reponse.shouldhave_form_putting_to(@message)with_submit_buttonendendView本身,new.html.erb,有代码:当我运行rspec时,它失败了:1)messages/new.html.erbshou

  2. ruby - 在 Ruby 中实现 `call_user_func_array` - 2

    我怎样才能完成http://php.net/manual/en/function.call-user-func-array.php在ruby中?所以我可以这样做:classAppdeffoo(a,b)putsa+benddefbarargs=[1,2]App.send(:foo,args)#doesn'tworkApp.send(:foo,args[0],args[1])#doeswork,butdoesnotscaleendend 最佳答案 尝试分解数组App.send(:foo,*args)

  3. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  4. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  5. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  6. ruby-on-rails - Rails 3.2.1 中 ActionMailer 中的未定义方法 'default_content_type=' - 2

    我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer

  7. ruby - 在 jRuby 中使用 'fork' 生成进程的替代方案? - 2

    在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',

  8. ruby - 主要 :Object when running build from sublime 的未定义方法 `require_relative' - 2

    我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby​​1.9+ 关于ruby-主要:Objectwhenrun

  9. ruby-on-rails - rails : save file from URL and save it to Amazon S3 - 2

    从给定URL下载文件并立即将其上传到AmazonS3的更直接的方法是什么(+将有关文件的一些信息保存到数据库中,例如名称、大小等)?现在,我既不使用Paperclip,也不使用Carrierwave。谢谢 最佳答案 简单明了:require'open-uri'require's3'amazon=S3::Service.new(access_key_id:'KEY',secret_access_key:'KEY')bucket=amazon.buckets.find('image_storage')url='http://www.ex

  10. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

随机推荐