标签: friendly-url

生成SEO友好URL(slugs)

定义

来自维基百科:

蛞蝓是识别使用人类可读关键字的页面的URL的一部分.

为了使用户更容易键入URL,通常也会删除或替换特殊字符.例如,重音字符通常被英文字母中的字母取代; 标点符号通常被删除; 和空格(必须编码为%20或+)由短划线( - )或下划线(_)代替,这些更美观.

上下文

我开发了一个照片共享网站,用户可以在其上传,分享和查看照片.

所有页面都是自动生成的,没有我对标题的控制.因为照片的标题或用户的名称可能包含重音字符或空格,我需要一个功能来自动创建slugs并保持可读的URL.

我创建了以下函数来替换重音字符(èçëçî),删除标点符号和错误字符(#@&〜^!)并以破折号转换空格.

问题

  • 你觉得这个功能怎么样?
  • 你知道创建slu的任何其他功能吗?

:

function sluggable($str) {

    $before = array(
        'àáâãäåòóôõöøèéêëðçìíîïùúûüñšž',
        '/[^a-z0-9\s]/',
        array('/\s/', '/--+/', '/---+/')
    );
 
    $after = array(
        'aaaaaaooooooeeeeeciiiiuuuunsz',
        '',
        '-'
    );

    $str = strtolower($str);
    $str = strtr($str, $before[0], $after[0]);
    $str = preg_replace($before[1], $after[1], $str);
    $str = trim($str);
    $str = preg_replace($before[2], $after[2], $str);
 
    return $str;
}
Run Code Online (Sandbox Code Playgroud)

php string seo friendly-url slug

17
推荐指数
5
解决办法
5万
查看次数

14
推荐指数
2
解决办法
1万
查看次数

Google App Engine中的漂亮网址

我想将参数'A1B2C3'传递给基于Google App Engine的GWT应用程序.我这样做就像www.example.com/index.html?key=A1B2C3.虽然它有效,但我想使用漂亮的URL.是否可以在Google App Engine上进行URL重写?我怎么也找不到.

www.example.com/A1B2C3
Run Code Online (Sandbox Code Playgroud)

代替

www.example.com/index.html?key=A1B2C3
Run Code Online (Sandbox Code Playgroud)

我正在使用Google App Engine和GWT.全部是Java.

java gwt google-app-engine friendly-url

13
推荐指数
2
解决办法
5315
查看次数

PHP的$ _GET和URL重写

URL重写如何影响$_GETPHP 的参数?

假设我有一个类似的URL http://example.com/index.php?p=contact,我用它$_GET['p']来告诉index.php联系页面.如果我使用的URL转换为重写规则http://example.com/contact,将$_GET['p']仍然按预期工作?

如果确实如此,你能详细说明它的工作原理吗?如果没有,可以使用什么策略来解决问题,以便页面在重写和不重写时都能正常工作?

php friendly-url url-rewriting url-routing

11
推荐指数
2
解决办法
3万
查看次数

ÅÄÖ:什么被认为是更加SEO友好的URL

据我所知,我不应该使用ÅÄÖ(就像他们在ASCII中没有视觉表现一样).

那么什么被认为更加SEO友好?用"a"或"ae"代替所有"ä"?(CMS Umbraco取代了ae,我倾向于此).

编辑:一些瑞典网站如何做到的摘要:

aftonbladet.se/ä=> a(http://www.aftonbladet.se/kropphalsa/)

uppsatser.se/ A = A>(http://www.uppsatser.se/om/v%C3%A5rd+av/)

lindqvist.com/ä=> a(http://www.lindqvist.com/b/google-maps-placering-ar-gratis)

umbraco CMS网站(如vaxab.se)ä=> ae(http://vaxab.se/tjaenster.aspx)

dn.se/ä=> a(http://www.dn.se/sthlm/brak-utanfor-aspuddsbadet-1.1008899)

seo friendly-url

11
推荐指数
1
解决办法
2262
查看次数

自定义FacesServlet <url-pattern>以摆脱.xhtml扩展名

我有Login.xhtmlHome.xhtml.我web.xml按如下方式配置了url模式

<servlet-mapping>
   <servlet-name>Faces Servlet</servlet-name>
   <url-pattern>/faces/*</url-pattern>
</servlet-mapping>

<welcome-file-list>
  <welcome-file>Login.xhtml</welcome-file>
</welcome-file-list>
Run Code Online (Sandbox Code Playgroud)

当我运行整个项目时,登录页面URL就像这样http://localhost:8080/fran/Login.xhtml,这fran是我的项目名称..

但是,我希望它http://localhost:8080/fran/Login/代替http://localhost:8080/fran/Login.xhtml.

我怎样才能做到这一点?是否可以<url-pattern>为每个页面自定义以摆脱.xhtml扩展?

jsf friendly-url jsf-2

11
推荐指数
1
解决办法
1万
查看次数

使用主键/ ID字段作为URL中的标识符

使用数据库主键作为URL标识符有哪些优缺点?例如,http:// localhost/post/view/13 - 13是我的帖子表的主键.

像reddit这样的网站使用的是我认为的唯一ID,它不是主键,但仍然有助于识别链接:

http://www.reddit.com/r/funny/comments/7ynin/the_mystery_of_irelands_worst_driver/

只要/ 7ynin /是相同的,您就可以将URL的最后部分更改为您想要的任何内容.


Digg似乎使用了一个链接标题的标题来标识一个链接:

http://digg.com/space/Liquid_Water_Recently_Seen_on_Mars

如果我没记错的话,默认的WordPress安装使用index.php?p =#作为他们的ID,直到启用了花哨的网址.


我可以看到为什么SEO的缘故,你想要有最多信息的网址,但我只是想看看使用主键是安全风险还是只是坏形式.

security database-design friendly-url

10
推荐指数
1
解决办法
3846
查看次数

slu and和unicode的规则

在仔细研究了人们对游戏标题的不同方式后,我注意到它经常忽略了如何处理非英语游戏.

url编码非常严格.请参阅http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

所以,例如,人们如何处理标题slu for等问题

"Unalágrimacayóenla arena"

人们可以为印欧语言提出合理的表格,即.可以通过ISO-8859-1编码的东西.例如,转换表将转换'á'=>'a',因此slug将是

"UNA-Lágrima酒店-岛-ZH-LA-舞台"

但是,我正在使用unicode(特别是使用UTF-8编码),所以不保证我会得到什么类型的代码点(我必须为不能进行ISO-8859-1编码的事情做准备.

我是个骗子.怎么处理这个?我是否应该为ISO_8859-1范围内的字符(<255)提供转换表并放弃其他所有内容?

编辑:为了给出更多的背景,先验,我真的不希望用非印欧语言来贬低数据,但是如果我遇到这样的数据,我想有一个计划.扩展ASCII的转换表会很好.有什么指针吗?

此外,由于人们在问,我正在使用python,在Google App Engine上运行

python unicode url google-app-engine friendly-url

10
推荐指数
1
解决办法
1585
查看次数

正则表达式 - URL友好的任何文本

PHP正则表达式脚本删除任何不是字母或数字0到9的内容,并将空格替换为连字符 - 更改为小写,确保只有一个连字符 - 单词之间没有 - 或---等.

例如:

例子:快速的棕色狐狸跳跃结果:快速的棕色狐狸跳跃

示例:快速的棕色狐狸跳了!结果:快速的棕色狐狸跳了起来

示例:快速的棕色狐狸 - 跳了!结果:快速的棕色狐狸跳了起来

示例:快〜!@ @ $%^&*()_ + = -------棕色{} |] [:"'; <>?.,/ fox - 跳跃!结果: - 快速棕色狐狸跃升

示例:快速1234567890~`!@#$%^&*()_ + = -------棕色{} |] [:"'; <>?.,/ fox - 跳!结果: - 快速-1234567890棕狐狸跃升


任何人都有正则表达的想法?

谢谢!

php regex friendly-url

10
推荐指数
3
解决办法
1万
查看次数

foo.com/alice与foo.com/users/alice

为用户提供网站内容的友好网址当然很好.但是如何最好地做到这一点?像foo.com/users/alice这样的东西有很多优点,最重要的是你不会弄乱根命名空间.但我认为用户的简单性胜过所有这些.许多大型网站似乎都同意(友情,美味和flickr想到),这个问题是关于如何在服务器端实现这一点.

让我们假设alice的真实网址是foo.com/userpage?user=alice,如果有人试图浏览到不存在的用户页面(让我们说foo.com/bob),他们应该访问foo.com/createnew?user=bob .

当然,用户永远不应该看到上面那些丑陋的"真实"网址,只有foo.com/alice或foo.com/bob.请注意,根名称空间是共享的.例如,foo.com/help不应转换为foo.com/userpage?user=help.

大概是我要求一些简单的mod_rewrite规则,但也许有一些完全不同的方法,我没想到.无论如何,我认为记录这个常见问题的确定性或"最佳实践"解决方案会很好.

PS:请随意评论alice.foo.com或users.foo.com/alice等其他替代品的优点.

PPS:我想我已经看到这个问题在其他问题上有争议,但搜索似乎很棘手.指针欢迎!当然,除了可以使其更易于搜索的其他关键字.关键字:用户空间,全局命名空间,URL命名空间.

url mod-rewrite friendly-url namespaces url-rewriting

9
推荐指数
2
解决办法
1322
查看次数