标签: friendly-url

friendly_id不会为旧记录生成slu ..

我使用了带有Rails应用程序的FriendlyId gem(版本4.0.8).我已经按照RailsCasts的教程进行操作,基于文档,我必须Model.find_each(&:save)在rails控制台上运行才能生成旧记录的slugs.但是,当我这样做时,我的所有旧记录的slug属性仍然没有,所以它并没有真正改变url的.

难道我做错了什么?这只发生在生产方式上.它在开发上运行良好.

更新:

我的模型看起来像这样:

class Member < ActiveRecord::Base
  extend FriendlyId
  friendly_id :name, use: :slugged

  belongs_to :gym

  attr_accessible :category, :name, :description
  validates :category, :name, :description, :presence => true

  has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }

  def self.search(search)
    if search.present?
      where("name LIKE ?", "%#{search}%")
    else
      find(:all)
    end
  end

  def should_generate_new_friendly_id?
    new_record?
  end
end
Run Code Online (Sandbox Code Playgroud)

friendly-url ruby-on-rails friendly-id ruby-on-rails-3

7
推荐指数
2
解决办法
5047
查看次数

替代GUID并考虑Scalablity和友好URL

我决定使用GUID作为我的许多项目数据库表的主键.我认为这是一个很好的做法,特别是考虑到可扩展性,备份和恢复.问题是我不想使用常规GUID并搜索替代方法.我真的很想知道Pinterest我用什么作为主键.当您查看URL时,您会看到如下内容:

http://pinterest.com/pin/275001120966638272/
Run Code Online (Sandbox Code Playgroud)

我更喜欢数字表示,即使是存储为字符串.有没有办法实现这个目标?

此外,youtube还使用了一种不同的散列技术,我无法弄清楚:

http://www.youtube.com/watch?v=kOXFLI6fd5A
Run Code Online (Sandbox Code Playgroud)

这让我想起了缩短网址的方案.

我更喜欢最短的一个,但我知道它不能保证是唯一的.我首先考虑做这样的事情:

 DateTime dt1970 = new DateTime(1970, 1, 1);
 DateTime current = DateTime.Now;
 TimeSpan span = current - dt1970;
Run Code Online (Sandbox Code Playgroud)

结果示例:

1350433430523.66
Run Code Online (Sandbox Code Playgroud)

打印自1970年以来的总毫秒数,但如果我每秒有数十万次写入会发生什么.

我主要更喜欢非BIGINT自动增量解决方案,因为使用第三方工具扩展数据库以及不太有问题的备份/恢复功能会减少很少的麻烦,因为我可以在服务器之间传输数据,如果我想要的话.

另一种复杂的方法是根据我的应用定制解决方案.在数据库中,主键还将包含用户名(唯一且用户无法更改),因此我可以将名称的数值与毫秒数组合,这将为我提供唯一的数字字符串.由于用户不以如此高的速率插入数据,因此数字ID保证是唯一的.我也可以删除最后5个数字并仍然获得一个唯一的ID,因为我假设用户不会以每秒超过1的速度插入数据,但我可能不会这样做(你怎么看?这个想法?)

所以我请求你的帮助.我的数据假设增长非常大,每年2TB,每秒有10万个新行.我希望URL看起来尽可能"友好",并且不想使用"常规"GUID.

我正在使用ASP.NET 4.5和MySQL开发我的应用程序

谢谢.

asp.net friendly-url guid

7
推荐指数
2
解决办法
712
查看次数

使用mod_rewrite RewriteRule重写所有查询以不需要.php扩展名

我想要所有的疑问

http://mysite.com/something/otherthing?foo=bar&x=y
Run Code Online (Sandbox Code Playgroud)

被重写为

http://mysite.com/something/otherthing.php?foo=bar&x=y
Run Code Online (Sandbox Code Playgroud)

换句话说,只需将.php扩展名设为可选的.

php url mod-rewrite friendly-url

6
推荐指数
1
解决办法
1727
查看次数

在restful url get上编码分页信息的标准方法?

我认为用几个例子可以更好地解释我的问题......

获取http://myservice/myresource/?name=xxx&country=xxxx&_page=3&_page_len=10&_order=name asc

也就是说,一方面我有条件( name=xxx&country=xxxx ),另一方面我有影响查询的参数( _page=3&_page_len=10&_order=name asc )

现在,我想使用一些特殊的前缀(在这种情况下为“_”)来避免条件和参数之间的冲突(如果我的资源有“order”属性怎么办?)

有一些标准方法来处理这些情况吗?

--

我找到了这个例子(只是挑一个) http://www.peej.co.uk/articles/restful-delicious.html

获取http://del.icio.us/api/peej/bookmarks/?tag=mytag&dt=2009-05-30&start=1&end=2

但在这种情况下,条件字段已经定义(没有开始或结束属性)

我正在寻找一些通用的解决方案......

-- 编辑,一个更详细的例子来澄清

每一项都完全独立......假设我的资源是客户,并且(幸运的是)我的数据库中有数百万个客户。

所以网址可能是这样的

http://myservice/customers/?country=argentina,last_operation=2009-01-01..2010-01-01

它应该给我所有去年购买过任何东西的阿根廷客户

现在,我想使用此服务来构建浏览页面,或者使用 ajax 填充组合,因此想法是添加一些元数据来控制我应该获取哪些信息

要构建浏览页面,我会添加

http://...,_page=1,_page_len=10,_order=状态,名称

并使用 ajax 填充自动建议组合

http://...,_page=1,_page_len=100,_order=状态,名称,名称=what_ever_type_the_user *

用与用户输入的内容相匹配的前 100 个客户来填充组合...

我的问题是是否有某种标准(书面或非书面)方式以restfull url 方式编码此类内容......

rest pagination friendly-url

6
推荐指数
2
解决办法
6870
查看次数

如何创建stackoverflow等用户友好的URL?

我想创建一个类似类型的url,就像创建问题时堆栈溢出一样.

例:

使用jQuery(插件?)非ajax-get-post-using-jquery-plugin的非ajax GET/POST

我特别感兴趣的是最后一部分,我粗略地说了一遍.如何通过分隔符实现将页面标题添加到URL的影响?

这种技术叫做什么?

asp.net url routing friendly-url

6
推荐指数
4
解决办法
2160
查看次数

如何在Django中创建类似于stackoverflow的URL?

我正在创建一个视频网站.我希望我的直接网址看起来像example.com/watch/this-is-a-slug-1,其中1是视频ID.我不希望这个小块很重要.example.com/watch/this-is-another-slug-1应指向同一页面.在SO上,/ questions/id是url中唯一重要的部分.我怎样才能做到这一点?

python django url friendly-url slug

6
推荐指数
1
解决办法
807
查看次数

用户友好的URL - mod重写和php重定向

到目前为止我已经这样做了:

RewriteBase /
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule  ^(.*)$ index.php?load=$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)

然后在我的索引页面(在根目录中)我正在使用PHP来确定要加载的页面:

// Swap to variables
    $load = $_GET['load'];

// Home page
    if (!$load || $load == "") { include('home.php'); exit(); }

// Dashboard
    if ($load == "dashboard") { include('dashboard.php'); exit(); }

// About
    if ($load == "about") { include('about.php'); exit(); }

// Username
    $data_array = array(':username' => $load);
    $select_account = $connect->prepare("SELECT * FROM `users` WHERE `username` = :username");
    $select_account-> execute($data_array);
    $account_amount = $select_account->rowCount();
    if ($account_amount > 0) …
Run Code Online (Sandbox Code Playgroud)

php mod-rewrite friendly-url url-rewriting

6
推荐指数
1
解决办法
1567
查看次数

用于检查网站是否具有搜索引擎友好URL的Ruby代码

我正在开发一个rails应用程序,需要检查输入的网站是否生成了搜索引擎友好的URL.我想到的解决方案是使用nokogiri解析网站的HTML并查看链接标记以查找URL和看看它们是否对搜索引擎友好.是否还有其他方法可以做到这一点?任何帮助都会非常棒.

ruby seo friendly-url ruby-on-rails nokogiri

6
推荐指数
1
解决办法
257
查看次数

如何在使用ASP.NET友好URL时忽略某些路由?

我成功使用ASP.NET友好URL,但我需要忽略特定Foo.aspx页面的路由(因为此页面需要POST数据,并且一旦重新路由POST数据就不再可用了Page_Load()!).

看起来使用ASP.NET友好URL会丢弃任何忽略路由的尝试.一旦使用ASP.NET友好URL路由,即使用于忽略路由的MSDN示例也不起作用:

routes.Ignore("{*allaspx}", new {allaspx=@".*\.aspx(/.*)?"});
Run Code Online (Sandbox Code Playgroud)

而忽略Foo.aspx代码的路径应该是这样的,不是吗?

routes.Ignore("{*fooaspx}", new { fooaspx = @"(.*/)?foo.aspx(/.*)?" });
Run Code Online (Sandbox Code Playgroud)

Global.asax代码如下所示:

public static void RegisterRoutes(RouteCollection routes) {

    // This doesn't work whether I put this code before or after ASP.NET Friendly URLs code.
    routes.Ignore("{*allaspx}", new { allaspx = @".*\.aspx(/.*)?" });

    routes.Canonicalize().Lowercase();

    var settings = new FriendlyUrlSettings();
    settings.AutoRedirectMode = RedirectMode.Permanent;   
    routes.EnableFriendlyUrls(settings);
}

void Application_Start(object sender, EventArgs e) {
   RegisterRoutes(RouteTable.Routes);
}
Run Code Online (Sandbox Code Playgroud)

在ASP.NET Friendly URL codeplex网站上已经提出了这个问题,但没有得到答案.

谢谢你的帮助:)

asp.net routes friendly-url

6
推荐指数
1
解决办法
4460
查看次数

PHP .htaccess - >漂亮的网址(反向)

我知道如何进行URL的重写,例如: www.example.com/index.php?id=1&cat=3to www.example.com/1/3/(或者其他).我知道.

我不知道的是如何在所有页面中更改我的整个链接以链接到漂亮的URL.我所有网站的链接都是旧时尚(<a href="index.php?id=1&cat=2">),还有很多.

如果用户点击index.php?id = 1,我问是否有人有想法或知道如何自动重定向到那个漂亮的URL.(如果你在网址中更改标题,几乎就像这个网站Stackoverflow).

所以我的预算是......

  1. 使用.htaccess读取index.php?id = 1&cat = 2来重写索引/ 1/3本身再次解释(奇怪)

  2. 一个php文件,用于重定向htaccess重写为原始的...

结论:<a href="index.php?id=1&.....">自动更改为index/1/2


解决了

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

##################################
# This turns index.php?id=1&cat=2 into index/1/2 and then back 'transparent' into    index.php?id=1&cat=2 if you have old fashioned
# links in your site and don't want to change them :)


# Avoid mod_rewrite infinite loops 
# This is critical if you want to use this code

RewriteCond %{ENV:REDIRECT_STATUS} …
Run Code Online (Sandbox Code Playgroud)

php mod-rewrite rewrite friendly-url

5
推荐指数
1
解决办法
8176
查看次数