php、.htaccess-将非扩展重定向到索引+;将用户名重定向到用户页
我在google和stackoverflow中搜索了很多,但没有找到完整的答案 我想做的是: 1) 将所有非扩展地址重定向到其页面。例如:home->home.php 2) 将用户名重定向到搜索用户名的页面,如果存在,则加载另一个页面。例如:www.example.com/michael将重定向到go.php并获取“michael”,如果用户存在;转到user.php?id=michael 它完全像facebook和twitter!如果您键入“home”,它将进入主页,如果您键入用户名,它将进入您的个人资料 我怎么能做这样的事php、.htaccess-将非扩展重定向到索引+;将用户名重定向到用户页,php,.htaccess,redirect,Php,.htaccess,Redirect,我在google和stackoverflow中搜索了很多,但没有找到完整的答案 我想做的是: 1) 将所有非扩展地址重定向到其页面。例如:home->home.php 2) 将用户名重定向到搜索用户名的页面,如果存在,则加载另一个页面。例如:www.example.com/michael将重定向到go.php并获取“michael”,如果用户存在;转到user.php?id=michael 它完全像facebook和twitter!如果您键入“home”,它将进入主页,如果您键入用户名,它将进入
编辑:也可以是一个.htaccess,它在第一个斜杠之后向页面发送任何内容。例如:
www.example.com/this/is/test
将是:
www.example.com/index.php?var1=this&var2=is&var3=test
然后index.php页面将决定做什么…您可以尝试以下操作:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/([^/]+)?/?([^/]+)?/?([^/]+)?/? [NC]
RewriteRule .* index.php?var1=%1&var2=%2&var3=%3 [L]
无声地映射
http://www.example.com/this/is/test
到
http://www.example.com/index.php?var1=this&var2=is&var3=test
所有参数都是可选的,最多3个。
如果需要更多,请在文件右端为每个文件添加([^/]+)?/?
RewriteCond%{REQUEST\u URI}
行并相应地添加键(
varN
)到重写规则中的index.php查询,使用%N
反向引用它们。然后/home
是一个固定字符串。对吗?如果没有,那么www.example.com/michael
和www.example.com/home
之间有什么区别?两者都有相同的结构,都有一个变量。home实际上是一个名为home.php的页面,也可以是profile->profile.php等页面。但是/michael和任何不是页面的内容都会转到user.php?id=michael这样的页面,并假设它们是用户名OK。但是我想你也希望profile
被重定向,例如,除非你愿意为每个名字都有一个规则,如果可能的话,最好有一个模式为所有名字制定一个规则。这只是关于1号。第二点很清楚。我刚刚编辑了我的帖子…看看它…也许这是一个更好的方式…我看到了。这是更好的和多功能的。嗯,它说的网页找不到!:(请将完整输入的URL复制粘贴到评论中。请尝试使用[R]而不是[L],以便查看重定向的URL。这是一个临时修改,以确定是否正确重定向。完成。结果与以前相同!请重试,我修改了我的答案。