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 - Fatal编程技术网

Php .htaccess在创建用户配置文件时出现问题?

Php .htaccess在创建用户配置文件时出现问题?,php,.htaccess,Php,.htaccess,我使用.htaccess代码将页面标题传递给url,然后在页面加载时使用php从mysql表中检索它们 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 我正在使用此php代码分解url并获取标题: $pas

我使用.htaccess代码将页面标题传递给url,然后在页面加载时使用php从mysql表中检索它们

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
我正在使用此php代码分解url并获取标题:

$passed_url = $_SERVER['REQUEST_URI'];
$passed_url = explode("/", $passed_url);
$passed_url = end($passed_url);
现在我想在这里创建一个用户配置文件页面,如so
www.website.com/users/user\u name\u
我如何使用php检查这是一个用户页面还是一个普通页面,可以像这样编写:
www.webiste.com/page\u title\u in\u here

有更好的方法吗?(我只是php初学者)

一种方法是检查
$passed\u url[1]
。如果是“用户”,那么你知道你在用户页面上

更好的方法是使用index.php作为前端控制器,并根据请求uri将请求传递给控制器。有很多方法可以做到这一点

一些框架将uri映射到class::方法。因此,您的url将更改为
/users/view/username
,并将调用
users::view


我更喜欢编写正则表达式,哪个正则表达式匹配控制加载哪个控制器。

一种方法是检查
$passed\u url[1]
。如果是“用户”,那么你知道你在用户页面上

更好的方法是使用index.php作为前端控制器,并根据请求uri将请求传递给控制器。有很多方法可以做到这一点

一些框架将uri映射到class::方法。因此,您的url将更改为
/users/view/username
,并将调用
users::view


我更喜欢编写正则表达式,哪个正则表达式匹配控制加载哪个控制器。

您可以通过以下方式更改重写引擎
。htaccess
文件:

RewriteEngine On
RewriteRule (.*)-(.*)\.ptf$ ./?page=$1&id=$2&%{QUERY_STRING} 
RewriteRule ^([^/]*)\.ptf$ ./?page=$1&%{QUERY_STRING} [L]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ ./?page=$1&id=$2&%{QUERY_STRING}
所以,这条规则,它确切的作用是:

URL
www.website.com/Page\u title\u in\u here

它会转到这里的
www.website.com/?page=page\u title\u

当你这样说的时候,
www.website.com/users-User\u name\u在这里

它在此处重定向到
www.website.com/?page=users&id=User\u name\u

因此,您可以使用
$\u GET[“page”]
$\u GET[“page”]
变量进行操作


你说什么?我是这样做的。希望这对你有帮助

您可以通过以下方式更改重写引擎
.htaccess
文件:

RewriteEngine On
RewriteRule (.*)-(.*)\.ptf$ ./?page=$1&id=$2&%{QUERY_STRING} 
RewriteRule ^([^/]*)\.ptf$ ./?page=$1&%{QUERY_STRING} [L]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ ./?page=$1&id=$2&%{QUERY_STRING}
所以,这条规则,它确切的作用是:

URL
www.website.com/Page\u title\u in\u here

它会转到这里的
www.website.com/?page=page\u title\u

当你这样说的时候,
www.website.com/users-User\u name\u在这里

它在此处重定向到
www.website.com/?page=users&id=User\u name\u

因此,您可以使用
$\u GET[“page”]
$\u GET[“page”]
变量进行操作

你说什么?我是这样做的。希望这对你有帮助