jjzjj

url-routing - 建议最佳 URL 样式

coder 2024-03-02 原文

我们的系统

我们的搜索模块可以有很多参数,比如

  • 搜索关键词
  • 检查过滤器
  • 主题过滤器
  • 日期范围过滤器
  • 类(class)名称过滤器
    ...
    ...

  • 并且有分页和排序参数,例如
  • 页码
  • 页面中的结果数
  • 排序字段
  • 排序顺序

  • 我们曾经有这样的网址:-
    www.projectname/module/search/<search keyword>/<examination filter>/<subject filter>/
    www.projectname/module/search/<search keyword>/<examination filter>/<subject filter>/<Page number>,<Number of results in a page>,<sort field>,<sort order>
    

    ....
    ...
    ...

    我们在 htaccess 中对每个变体都有一个重写规则。

    当前问题

    由于多个URL的麻烦导致代码维护出现问题,我现在求助于PHP函数而不是htaccess来完成任务,类似于Zend,Codeignitor等框架的URL库。

    我的问题

    考虑到并非每次都需要所有搜索过滤器/parmas,我只想就以下哪种 URL 格式约定更好地遵循一些建议。那么,遵循以下哪两个约定更好:-
  • 将所有 URL 参数存在于所有 URL 中,无论是否需要它们,例如:-

    www.projectname/module/search/hello//110/...所有其他参数存在...

    这里我们不用说哪个参数是搜索关键字,哪个是主题过滤器。一个简单的 URL 解析器函数总是假定来自 www.projectname/module/的第二个参数作为搜索关键字(在本例中为 hello),其他参数也类似。在这个例子中,考试过滤器不适用,所以它留空,它不会破坏 URL,但它很好。如果有很多空白参数,那么会出现很多背对背斜线
  • 允许以任何顺序自由传递 URL 参数,如下所示:-

    www.projectname/module/search/search_keyword/hello/subject_filter/110/...其他需要的参数只存在...
    www.projectname/module/search/subject_filter/110/search_keyword/hello/...其他需要的参数只存在...

    这两个网址的意思是一样的
    在此约定中,URL 解析器函数解析每个名称-值对,并将名称“search_keyword”旁边的值作为搜索关键字,其他类似(在此示例中名称 = search_keyword,值 = hello)。该函数将解析每个名称值对,因此作为其他对的值出现的术语 search_keyword 不会干扰。

  • 建议时请考虑以下因素:-
    - SEO友好
    - 易于维护(考虑到 future 可能会添加新的过滤器)

    请提供一些有关提高 SEO 友好度的提示。我对此知之甚少

    谢谢

    最佳答案

    在 Zend Framework 中,Request 对象允许以任何顺序传递数据,并最终使用 Router 或 Url View helper 以您目前希望的方式创建页面 url。

    这是我所知道的最好的模式。根本没有 .htaccess 规则。

    关于url-routing - 建议最佳 URL 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3218130/

    有关url-routing - 建议最佳 URL 样式的更多相关文章

    1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

      很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

    2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

      我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

    3. ruby - 如何使用文字标量样式在 YAML 中转储字符串? - 2

      我有一大串格式化数据(例如JSON),我想使用Psychinruby​​同时保留格式转储到YAML。基本上,我希望JSON使用literalstyle出现在YAML中:---json:|{"page":1,"results":["item","another"],"total_pages":0}但是,当我使用YAML.dump时,它不使用文字样式。我得到这样的东西:---json:!"{\n\"page\":1,\n\"results\":[\n\"item\",\"another\"\n],\n\"total_pages\":0\n}\n"我如何告诉Psych以想要的样式转储标量?解

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

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

    6. ruby - 如何在 Ruby 中拆分参数字符串 Bash 样式? - 2

      我正在为一个项目制作一个简单的shell,我希望像在Bash中一样解析参数字符串。foobar"helloworld"fooz应该变成:["foo","bar","helloworld","fooz"]等等。到目前为止,我一直在使用CSV::parse_line,将列分隔符设置为""和.compact输出。问题是我现在必须选择是要支持单引号还是双引号。CSV不支持超过一个分隔符。Python有一个名为shlex的模块:>>>shlex.split("Test'helloworld'foo")['Test','helloworld','foo']>>>shlex.split('Test"

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

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

    8. 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”以实现该目的?如果我想通过传递一些

    9. ruby-on-rails - 添加回形针新样式不影响旧上传的图像 - 2

      我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司

    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.

    随机推荐