[英]how to make example.com/eat load example.com/eat.php?
[英]How to make users system example.com/username
如何使用户系统为example.com/username
这回答了您的问题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.