我想使用.htaccess重写来创建每个用户在网站上拥有自己的文件夹的错觉,当时它只是少数生成所有用户内容的PHP文件(通常是从数据库中提取) ):
/members/bob/avatar.jpeg指向/members/avatar.php?username=bob
/members/bob/about.html指向/members/about.php?username=bob
我完全失去了如何做到这一点......我已经提到了使用htaccess重写机制的教程,但没有一个涉及将/ folder_name / variable / file_synonym更改为/ folder_name / file_actual ?VAR =变量。如果有人知道如何做这样的事情我真的很感兴趣,因为我不知道从哪里开始。
答案 0 :(得分:0)
尝试:
RewriteEngine On
RewriteCond %{THE_REQUEST} \ /+members/avatar\.php\?username=([^&\ ]+)
RewriteRule ^ /members/%1/avatar.jpeg? [L,R]
RewriteCond %{THE_REQUEST} \ /+members/about\.php\?username=([^&\ ]+)
RewriteRule ^ /members/%1/about.html? [L,R]
RewriteCond ${REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^members/([^/]+)/(avatar|about)\.(jpeg|html)$ /members/$2.php?username=$1 [L]
答案 1 :(得分:0)
这最终成为解决方案:
RewriteEngine On
RewriteRule ^members/([A-Za-z0-9-]+)/avatar.jpeg?$ members/avatar.php?username=$1 [NC,L]
RewriteRule ^members/([A-Za-z0-9-]+)/about.html?$ members/about.php?username=$1 [NC,L]
RewriteRule ^members/([A-Za-z0-9-]+)/feed.html?$ members/feed.php?username=$1 [NC,L]
我一直用http://htaccess.madewithlove.be/来测试我的工作,以确保我做的一切正常。显然,在Hostgator的共享服务器上不允许内部htaccess重写,所以我必须等到升级到真正使用这种方法。