创建用户个人资料时出现.htaccess问题?

时间:2012-06-18 04:26:39

标签: php .htaccess

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

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

RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

我正在使用这个PHP代码来爆炸网址并获得标题:

$passed_url = $_SERVER['REQUEST_URI'];
$passed_url = explode("/", $passed_url);
$passed_url = end($passed_url);

现在我想创建一个像www.website.com/users/User_name_in_here这样的用户个人资料页面 如果这是一个用户页面,我该如何检查php,或者它只是一个可以像这样写作的常规页面:www.webiste.com/Page_title_in_here 有更好的方法吗?(我只是php的首发)

2 个答案:

答案 0 :(得分:1)

一种方法是检查$passed_url[1]。如果它是“用户”,那么您就知道自己在用户页面上。

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

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

我更喜欢编写正则表达式,而正则表达式是匹配控件加载的控件。

答案 1 :(得分:0)

您实际上可以通过以下方式更改重写引擎.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}

所以,这条规则,它究竟是做什么的:

URLwww.website.com/Page_title_in_here时,

它转到www.website.com/?page=Page_title_in_here

当你这样说时,www.website.com/users-User_name_in_here

重定向到www.website.com/?page=users&id=User_name_in_here

因此,您可以使用$_GET["page"]$_GET["page"]变量进行操作!

说什么?我这样做。希望这能帮到你!