Twitter 喜欢 URL,但带有 @'s?
Posted
技术标签:
【中文标题】Twitter 喜欢 URL,但带有 @\'s?【英文标题】:Twitter Like URL but with a @'s?Twitter 喜欢 URL,但带有 @'s? 【发布时间】:2013-08-20 15:10:42 【问题描述】:我正在制作一个社交网站,但我无法完成:
如果网址是http://url.com/@username
,我希望它显示http://url.com/user?u=username
页面,但显示http://url.com/@username
网址。
但是,如果开头没有@
,则将其视为常规网址。
这是我的.htaccess
文件:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
RewriteCond %SCRIPT_FILENAME !-d
RewriteCond %SCRIPT_FILENAME !-f
RewriteRule ^/(\d+)*$ ./user.php?u=$1
最后三行是我尝试过的,但这并不像我想要的那样工作。我认为它会起作用,因为RewriteRule ^/(\d+)*$
在斜杠之后接受任何 URI,并将其重写为 .user.php?u=*
,但这不起作用,所以我正在寻找一些关于下一步做什么的建议。
【问题讨论】:
【参考方案1】:根据我对您问题的理解,这应该可行。
Options +FollowSymLinks
RewriteEngine On
RewriteCond %SCRIPT_FILENAME !-d
RewriteCond %SCRIPT_FILENAME !-f
RewriteRule ^@(.+?)$ user.php?u=$1 [NC,L]
它要求您在用户名之前有一个 @ 并将其作为 GET 变量 (u) 传递。但是,人们可以添加其他字符,这可能会将其混淆为用户名。
/@用户名/松饼
但是如果你想要这个,并且每个用户名都有页面(例如,/@username/info、/@username/about 等),你可以在 PHP 中使用 explode() 函数。
如果你只是想让它得到用户名而不是别的,你可以试试
RewriteRule ^@([A-Za-z0-9]+)$ user.php?u=$1 [NC,L]
希望这会有所帮助! :)
【讨论】:
说/@username?about
怎么样?
可以使用PHP的explode函数。数一下是否有超过 1 个部分(第 1 部分 = 用户名,2 = 页面等)然后将第 2 部分用作页面,如果没有则显示主页。
好吧,最后一件事,如果我的 URL 是 http://localhost/@
,它会给我一个 404 警告,如果在 @之后没有任何内容,是否可以这样做>,它会将其重定向回索引?
很简单,把这个加到rewrite url RewriteRule ^@$ /index.php [r=301,nc]的末尾以上是关于Twitter 喜欢 URL,但带有 @'s?的主要内容,如果未能解决你的问题,请参考以下文章
Twitter文本js,不计算包含带有#的url的文本的长度!
带有 Rails 5 的 Omniauth-twitter 停止工作! OAuth::Unauthorized 403 Forbidden