【发布时间】:2015-09-08 11:41:23
【问题描述】:
我的 URL 重写有问题。我想通过用户名获取 url,比如
yourdomain.com/joshua
但错误停留在 404 上。
.htaccess
ErrorDocument 404 /eror/404.php
ErrorDocument 403 /eror/403.php
ErrorDocument 500 /eror/403.php
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.recettes.nl/$1 [R,L]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^about$ about.php
RewriteRule ^recettes$ recettes.php
RewriteRule ^contact$ contact.php
RewriteRule ^([A-Za-z0-9-]+)/?$ profile.php?user=$1 [QSA,L]
RewriteRule ^recept$ recept.php
RewriteRule ^login$ login.php
RewriteRule ^logout$ logout.php
RewriteRule ^register$ register.php
.profile.php
if(!(isset($_GET['user']) && $_GET['user'] == $me['id'] || !isset($_GET['user'])) || isset($me)) {
redirectByPermission('profiles');
}
function notempty($str) {
return ($str != '');
}
if(isset($_GET['user'])) {
$user_sql = $dbh->prepare('SELECT * FROM users WHERE id = :id');
$user_sql->bindParam(':id', trim($_GET['user']), PDO::PARAM_INT);
$user_sql->execute();
$user = $user_sql->fetch();
}else{
$user = $me;
}
有人可以帮我解决这个问题并告诉我我做错了什么吗?
【问题讨论】:
-
你只需要:
RewriteRule ^([A-Za-z0-9-]+)/?$ profile.php?user=$1 [QSA,L] -
@anubhava 它给出了 ERR_TOO_MANY_REDIRECTS 错误。
-
这个规则甚至不重定向,所以你有一些其他冲突的规则。
-
不在 cmets 中,编辑您的问题并在那里提供您的代码。
-
Oké @anubhava 很酷:P
标签: php regex .htaccess mod-rewrite