Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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 codeigniter中每个用户名的唯一url_Php_Codeigniter - Fatal编程技术网

Php codeigniter中每个用户名的唯一url

Php codeigniter中每个用户名的唯一url,php,codeigniter,Php,Codeigniter,我正在开发一个网站,我想为每个用户帐户创建一个唯一的url 意味着 我正在使用codeigniter,URL的模式是: http://exaple.com/controller name/method name/argument 我不知道我们怎么能像facebook那样做这种路由呢???这个论点http://exaple.com/controller_name/method_name/argument部分是在您的情况下需要独特的部分。您可以通过codeigniter路由轻松做到这一点。请参阅手

我正在开发一个网站,我想为每个用户帐户创建一个唯一的url

意味着

我正在使用codeigniter,URL的模式是:

http://exaple.com/controller name/method name/argument

我不知道我们怎么能像facebook那样做这种路由呢???

这个论点
http://exaple.com/controller_name/method_name/argument
部分是在您的情况下需要独特的部分。

您可以通过codeigniter路由轻松做到这一点。请参阅手册:

使用CI路由,您可以非常轻松地实现这一点

routes.php
config(application/config/route.php)文件中,添加一行类似于以下内容:

$route['(:any)'] = "controller/index/$1";
左边的一位是您在浏览器地址栏中键入或拥有的。正确的位是它的路径。在您的例子中,控制器和方法的名称,后跟参数。对于您的情况,这将是用户。它是一个字母数字变量,所以这就是传递它的方式

这里可以找到完整的参考资料,但上面的例子应该让一切都清楚:

您需要修改.htacces以替换index.php,例如:

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteBase /<your_root_foler>/%{HTTP_HOST}
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ /<your_root_foler>/%{HTTP_HOST}/index.php/$1 [L]
   </IfModule>

重新启动发动机
RewriteBase/%{HTTP_HOST}
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$/%{HTTP_HOST}/index.php/$1[L]
这一行(RewriteRule^(.*)$/%{HTTP_HOST}/index.php/$1[L])替换应用程序中的所有index.php。在哪里使用codeigniter


在你可以修改你的routes.php之后,比如说“bottleboot”

no,我不想显示控制器和方法的名称,这并不能完全满足我的目的。。。。。。。每当我试图执行任何字符串(甚至是控制器的名称)时,它都会重定向到路由控制器。
$1
是一个变量,在这个变量中是该uri的第一个,因此数字1是将
用户名
参数传递给您的方法的参数。它正在做它应该做的事情。如果不希望任何给定字符串路由到它,则必须将其添加到函数中。例如如果(是用户名($var))等。。。这是一个不同的问题,如果我们写$route['(:any)],它会将所有内容都视为“any string”,并重定向到我创建的控制器。我的意思是说,我前面调用的控制器方法没有调用。。。。。。。只有索引方法和控制器在运行,没有其他东西在运行,这不是我的问题。。。。。。。。。我只是想说,如果我没有在url中写入任何内容,那么它将重定向到默认控制器,如果我写入任何内容(甚至是另一个控制器的名称),那么它将显示问题
<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteBase /<your_root_foler>/%{HTTP_HOST}
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ /<your_root_foler>/%{HTTP_HOST}/index.php/$1 [L]
   </IfModule>