Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php、.htaccess-将非扩展重定向到索引+;将用户名重定向到用户页_Php_.htaccess_Redirect - Fatal编程技术网

php、.htaccess-将非扩展重定向到索引+;将用户名重定向到用户页

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”,它将进入主页,如果您键入用户名,它将进入

我在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。这是一个临时修改,以确定是否正确重定向。完成。结果与以前相同!请重试,我修改了我的答案。