繁体   English   中英

如何使用户系统为example.com/username

[英]How to make users system example.com/username

如何使用户系统为example.com/username

如果您在Apache上,则需要使用mod_rewrite

这是有关如何实现的文章:

http://articles.sitepoint.com/article/guide-url-rewriting

这回答了您的问题http://articles.sitepoint.com/article/guide-url-rewriting

编辑:Arg Beaten 2分钟。 我很慢 哦,这是替代方法的另一个链接, 网址http://www.thyphp.com/friendly-url-without-mod_rewrite.html

您的Web服务器需要知道如何处理此类URL。 大多数Web服务器软件都有一个扩展名,该扩展名允许在内部重写请求的URL。

对于Apache的Web服务器,有mod_rewrite ,它允许基于规则的URL重写。 在这种情况下,您可以在.htaccess文件中使用以下规则将此类请求的URL路径内部重写为user.php文件:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[^/]+$ user.php [L]

注意,此规则仅添加一种新的请求/user.php 因此仍然有可能直接请求/user.php

user.php中,您可以使用$_SERVER['REQUEST_URI']访问请求的URI路径。 要提取用户名,可以使用以下命令:

$_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$username = substr($_SERVER['REQUEST_URI_PATH'], 1);

现在,您只需要调整应用程序即可提供正确的URL,因为mod_rewrite只能重写传入的请求,而不能重写传出的响应。

但是除此之外,我宁愿建议使用不同的URI设计,例如/user/… 否则,用户可以选择的网址,与像现有的冲突/index.html/robots.txt/sitemap.xml等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM