.htaccess 类似Twitter的URL,但带有@';s
我正在制作一个社交网站,但我无法做到: 如果url是.htaccess 类似Twitter的URL,但带有@';s,.htaccess,url,.htaccess,Url,我正在制作一个社交网站,但我无法做到: 如果url是http://url.com/@用户名,我希望它显示http://url.com/user?u=username页面,但显示http://url.com/@用户名URL 但是,如果开始时没有@,请将其视为常规URL 这是我的.htaccess文件: Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST
http://url.com/@用户名
,我希望它显示http://url.com/user?u=username
页面,但显示http://url.com/@用户名
URL
但是,如果开始时没有@
,请将其视为常规URL
这是我的.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=*
,但这不起作用,所以我正在寻找一些关于下一步做什么的建议。根据我对您问题的理解,这应该会起作用
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中使用()函数
如果您只想让它获取用户名,而不想获取其他内容,您可以尝试
RewriteRule ^@([A-Za-z0-9]+)$ user.php?u=$1 [NC,L]
希望这有帮助!:) 比如说
/@username如何?关于?您可以使用PHP的explode函数。数一数看是否有超过1个部分(第1部分=用户名,第2部分=页面等),然后将第2部分用作页面,如果没有,则显示主页。好的,最后一件事,如果我的URL是http://localhost/@
,它给我一个404警告,如果@之后没有任何东西,是否可以这样做,它会将其重定向回index?相当简单,将其添加到重写url RewriteRule^@$/index.php[r=301,nc]的末尾