我正在尝试在Rails中实现这样的URL:
http://localhost/posts/1234/post-slug-name
Run Code Online (Sandbox Code Playgroud)
同时使用ID和slug名称而不是其中之一
http://localhost/posts/1234
Run Code Online (Sandbox Code Playgroud)
要么
http://localhost/posts/post-slug-name
Run Code Online (Sandbox Code Playgroud)
(现在我在URL中只有slug名称,所以这部分结束了).我怎样才能做到这一点?
UPD
我发现了一篇关于此的文章:http://augustl.com/blog/2009/styling_rails_urls/,而不是/id/slug
建议使用/id-slug
哪种方式对我来说非常有效,所以我会选择这个.
什么7n5lu
是reddit URL
7n5lu
它是如何产生的?
更新:@Gerald,感谢您的代码.我最初认为这是对id的一些混淆.但是,它只是从整数转换为更紧凑的表示.我在想,为什么要这样做?为什么不使用原始整数本身!
>>> to36(4000)
'334'
>>> to36(4001)
'335'
Run Code Online (Sandbox Code Playgroud) slug是描述或标题页面的URL的一部分,并且通常是关键字丰富的页面改进SEO.例如,在这个URL中PHP/JS - 动态创建缩略图或存储为最后一节"php-js-create-thumbnails-on-the-fly-or-store-as-files"的文件是slug.
目前,我正在为每个页面存储slug,并在DB中记录页面的记录.当页面生成并与页面一起存储时,从标题字段生成slug.但是,我正在考虑动态生成slug,以防我想要改变它.我正在努力找出哪个更好,哪些更好.
到目前为止,我已经为每个人提出了这些专业要点:
Store slug: - "Faster"处理器每次都不需要生成它(生成一次)
生成即时: - 灵活(可以调整slug算法,不需要为整个表重新生成). - 在数据库中占用更少的空间 - 从数据库传输到应用程序的数据更少
还有什么我错过了,你会怎么做?
编辑:
我想澄清一下在答案中看起来像是一种误解.slu to对登陆正确页面没有影响.要理解这一点,只需切断或破坏本网站上任何部分的slu .. 例如:
都将带你到同一页.slu from永远不会被编入索引.
你不需要保存旧的slu .. 如果你登陆了一个有"旧slu"的页面,那么你可以检测到这一点,然后只需301重定向到正确的"slu"".在上面的例子中,如果Stack Overflow实现了它,那么当你登陆任何带有截断slug的链接时,它会将url中的slug与当前slug算法生成的slug进行比较,如果不同,它会执行301重定向到同一页面,但使用新的slug.
请记住,所有内部生成的链接将立即使用新算法,并且只有来自外部指向的链接才会使用旧的slug.
我在tag.php页面上.我怎样才能得到它的slu ??
single_tag_title()
获得标题就好了,但是slu ??
我需要从woocommerce产品变异获得属性.
$terms = get_post_meta($value['variation_id'], 'attribute_pa_color', true);
Run Code Online (Sandbox Code Playgroud)
这段代码给了我一个属性slug而不是name.我怎样才能获得属性名称?
非常感谢你提前!
此上下文中的一个slug是一个字符串,可以安全地用作urls或css上的标识符.例如,如果您有此字符串:
I'd like to eat at McRunchies!
Run Code Online (Sandbox Code Playgroud)
它的slu is将是:
i-d-like-to-eat-at-mcrunchies
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种在Drupal上构建这样的字符串的标准方法(或drupal提供的php函数).更确切地说,在Drupal主题中.
上下文:我正在修改一个drupal主题,因此它生成的节点的html包括它们的分类术语作为包含div的css类.麻烦的是,其中一些术语的名称不是有效的css类名.我需要"迷恋"他们.
我读过有些人只是这样做:
str_replace(" ", "-", $term->name)
Run Code Online (Sandbox Code Playgroud)
这对我来说真的不够.它不downcase代替大写字母,但更重要的是,不能取代非ASCII字符(如A或E)通过的ASCII码值.它也不会从开始和结束中删除"分隔符字符串".
有没有在Drupal 6(或PHP库)的功能,它提供了一种slugify一个字符串,并且可以在Drupal主题的template.php文件中使用吗?
我听说有人用slu to来生成干净的网址.我不知道它是如何工作的.目前我有一个codeigniter网站,生成这样的网址
www.site.com/index.php/blog/view/7
Run Code Online (Sandbox Code Playgroud)
根据我的理解,通过维持一个slug字段,可以实现网址
www.site.com/index.php/blog/view/once-upon-a-time
Run Code Online (Sandbox Code Playgroud)
这是怎么做到的?特别是参考codeigniter?
我在Twig扩展中有一个slugify方法,我想在某些情况下在控制器中使用,fe有重定向.
有一个简单的方法吗?
我如何从控制器中的Twig Extensions访问功能?
或者我是否必须将slugify方法作为帮助才能在代码和树枝中使用它?
说我有这个网页:http://ww.xyz.com/Product.aspx? CategoryId
= 1
如果CategoryId = 1的名称是"Dogs",我想将URL转换为如下内容:http:
//ww.xyz.com/Products/Dogs
问题是如果类别名称包含外来(或对于URL无效)字符.如果CategoryId = 2的名称是"Göraäldre",那么新网址应该是什么?
逻辑上它应该是:
http: //ww.xyz.com/Products/Göraäldre
但它不起作用.首先是因为空间(我可以很容易地用短划线取代)但是外国人物呢?在Asp.net中我可以使用URLEncode函数,它会给出类似这样的东西:
http://ww.xyz.com/Products/G%c3%b6ra+%c3%a4ldre
但是我不能说它比原来更好url(http://ww.xyz.com/Product.aspx?CategoryId=2)
理想情况下,我想生成这个,但我怎么能自动执行此操作(即将外来字符转换为'安全'url字符):http:
//ww.xyz.com/Products/Gora-aldre
我使用Django从Tango学习Django,当我输入时我不断收到此错误:
python manage.py makemigrations rango
python manage.py migrate
Run Code Online (Sandbox Code Playgroud)
这是输出:
django.db.utils.IntegrityError: UNIQUE constraint failed: rango_category__new.slug
Run Code Online (Sandbox Code Playgroud)
Models.py:
from django.db import models
from django.template.defaultfilters import slugify
class Category(models.Model):
name = models.CharField(max_length=128, unique=True)
views = models.IntegerField(default=0)
likes = models.IntegerField(default=0)
slug = models.SlugField(unique=True)
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
super(Category, self).save(*args, **kwargs)
def __unicode__(self):
return self.name
class Page(models.Model):
category = models.ForeignKey(Category)
title = models.CharField(max_length=128)
url = models.URLField()
views = models.IntegerField(default=0)
def __unicode__(self):
return self.title
Run Code Online (Sandbox Code Playgroud) slug ×10
php ×3
url ×2
asp.net ×1
attributes ×1
clean-urls ×1
codeigniter ×1
django ×1
drupal ×1
python ×1
reddit ×1
string ×1
symfony ×1
tags ×1
twig ×1
variables ×1
woocommerce ×1
wordpress ×1