我对这个领域全新。我想改变这个网址
http://localhost/livelor/profile.php?username=naveen471996
http://localhost/livelor/naveen471996
是的,我这样做了当这样的网址无法正常工作时404找不到
http://localhost/livelor/vikaass.waran
这是我的.htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)$ $1.php [NC]
RewriteRule ^([0-9a-zA-z]+)$ profile.php?u=$1 [L]
答案 0 :(得分:1)
RewriteRule ^([0-9a-zA-z]+)
表示只允许使用字符0-9 a-z和A-Z
RewriteRule ^([0-9a-zA-z.]+)
应解决问题,您可以在用户名中使用DOT。
你应该看看REGEX&#39>
答案 1 :(得分:0)
它返回404,因为它认为.warran是文件扩展名,并且无法加载它。要解决此问题,请从用户名中禁用句点(也称为点)或使用%encoding(http://php.net/manual/en/function.urlencode.php):
$final_url = urlencode($username);
然后,当您想要解码它时,请使用:
$user = urldecode($_GET["username"]);
这样,您就可以通过$ _GET传递大多数UTF-8字符。但要注意HTML字符(以及可解码为HTML字符的%代码),因为这可能会导致一些黑客问题。在解码url之前,使用preg_replace()或类似的东西去掉那些。
有关%代码的完整列表,请访问http://www.w3schools.com/tags/ref_urlencode.asp