草庐IT

php - 动态 url 生成器故障

coder 2024-03-01 原文

我们在 Yii (1.1.13) 上构建站点;这是car pare parts shop & transaction management engine . 当对 SEO 公司进行 SEO 检查时,该公司得出的结论是:

  1. 找到 15000 个动态 url(“显然不是全部”- 我的评论)
  2. ~8 000 个看起来很长,像这样:http://tarex.ru/index.php?r=assortment/index&id=1536&Subsystem=Warehouse+automation&Reference=Assortment&Assortment_page=9&Assortment_sort=title.desc
  3. 目前只有 300 个页面在搜索引擎中注册。
  4. 其中 500 个是错误的 url 或没有响应(响应代码 500)。 ulrs是这样的: http://tarex.ru/index.php?r=assortment/index&Assortment[groupCategory]=4&Assortment_page=46&Assortment_sort=agroup.desc ('最有可能导致分类在数据库中重新加载/更新'-我的评论)。 他们表示这些故障(对于第 4 点)是动态 url 生成器故障的原因。

数据库中的分类每天动态更新。

该公司建议解决动态 url 生成器问题或不使用它以支持用户友好的 url/seo 友好的 url。

如何修复动态 url 生成器故障以及是否可以使用 smth。其他建议?

更新

到目前为止,URL 管理配置已关闭:

// uncomment the following to enable URLs in path-format
    /*
    'urlManager'=>array(
        'urlFormat'=>'path',
        'rules'=>array(
            '<controller:\w+>/<id:\d+>'=>'<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        ),
    ),
    */

当我取消注释时,该站点运行良好,但某些子系统菜单不起作用,因为绑定(bind)到某些 GET 参数...

最佳答案

最近为一家商店做了这样的事情。

通常你会这样做:

1) 对于每个动态 url 动态 使其成为干净的 url 替代品

2) 从旧 URL 重定向到干净的 URL。

3) 利润!

现在至于详情:

最棘手的部分是了解是否可以形成新的 url,如果可以,则重定向到它。我认为您可以在 customUrlRule(有点脏)或 Controller (我更喜欢)中执行此操作。

让我们假设您选择了一个 Controller : 在 Controller 的 Action 中,判断是否有新的url用户来自。如果有 AND REQUEST URL!==NEW URL 你只是在处理 Controller 逻辑。如果没有,您将重定向到新的 url。我认为如果

1) 两种 url 类型都使用或不同的 Controller 和操作进行处理,并包含上述逻辑。

2) 您正在使用某种方法来提供新旧类型的 url,并向它们传递相同的参数。例如,您可以使用 Yii::app()->createUrl($params) 来获取新类型的 Url,以及一些自定义方法,即 $myModelInstance->createUrl($params)

3) 正在使用 custom URL rule 构建和处理新的 url

4) 在您的网址管理器中,您有新网址的自定义规则和旧网址的普通规则。

总结:

如果用户从旧 url 访问,则执行 Controller 操作,并进行一些额外的检查。我们正在检查是否可以构建一个新的 url,我们还可以检查一些额外的东西,即与一些额外的 seo url 数据库同步,以了解这个 url 是否需要重定向。 如果可以构建新的 url - 我们将重定向到它。 浏览器请求一个request,用你自定义的url规则解析,并执行相应的controller和action。

关于php - 动态 url 生成器故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26650755/

有关php - 动态 url 生成器故障的更多相关文章

  1. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  2. 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',

  3. 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

  4. 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

  5. ruby-on-rails - Ruby url 到 html 链接转换 - 2

    我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.

  6. ruby-on-rails - Ruby on Rails - 为文本区域和图片生成列 - 2

    我是Rails的新手,所以请原谅简单的问题。我正在为一家公司创建一个网站。那家公司想在网站上展示它的客户。我想让客户自己管理这个。我正在为“客户”生成一个表格,我想要的三列是:公司名称、公司描述和Logo。对于名称,我使用的是name:string但不确定如何在脚本/生成脚手架终端命令中最好地创建描述列(因为我打算将其设置为文本区域)和图片。我怀疑描述(我想成为一个文本区域)应该仍然是描述:字符串,然后以实际形式进行调整。不确定如何处理图片字段。那么……说来话长:我在脚手架命令中输入什么来生成描述和图片列? 最佳答案 对于“文本”数

  7. ruby-on-rails - 如何生成传递一些自定义参数的 `link_to` URL? - 2

    我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些

  8. ruby-on-rails - 如何在 Rails 3 中创建自定义脚手架生成器? - 2

    有这些railscast。http://railscasts.com/episodes/218-making-generators-in-rails-3有了这个,你就会知道如何创建样式表和脚手架生成器。http://railscasts.com/episodes/216-generators-in-rails-3通过这个,您可以了解如何添加一些文件来修改脚手架View。我想把两者结合起来。我想创建一个生成器,它也可以创建脚手架View。有点像RyanBates漂亮的生成器或web_app_themegem(https://github.com/pilu/web-app-theme)。我

  9. 报告回顾丨模型进化狂飙,DetectGPT能否识别最新模型生成结果? - 2

    导读语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)Ericmitchell斯坦福大学计算机系四年级博士生,由ChelseaFinn和Chri

  10. ruby - Rack:如何将 URL 存储为变量? - 2

    我正在编写一个简单的静态Rack应用程序。查看下面的config.ru代码:useRack::Static,:urls=>["/elements","/img","/pages","/users","/css","/js"],:root=>"archive"map'/'dorunProc.new{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=6400'},File.open('archive/splash.html',File::RDONLY)]}endmap'/pages/search.

随机推荐