开发者

how can i get my htaccess to make my url look like foo.bar/user with this snippet i have

I have been trying to get my urls to be more user friendly and I have come up with this set up

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ userpage?user=$1 [NC,L]

I added this to my .htaccess but I'm now i'm confused as to how to access these urls.

in my index.php when a user logs in i have tried to redirect the user using

userpage.php?user=s2xi

开发者_JS百科but the url parses as www.foo.bar/userpage.php?user=s2xi and not www.foo.bar/s2xi

and also tried this as a check to see if user exists (is there a better way?)

if($_GET['user'] != $_SESSION['username']){
    header("Location: no_user.php");
}else{
    //load page
}

I am using the Smarty template engine on my site and I have my 'themes' in directories that belong to members file

www.foo.bar/users/s2xi/themes

but i want www.foo.bar/s2xi to point to the persons profile page that is viewable by everyone else and not their accounts page.


You're missing the .php in your RewriteRule, if that's verbatim - eg, userpage? => userpage.php?.

However, you're going to run into some problems with this unless you're using a framework to help you distinguish between routes. If you switched to using a separate URI format for user pages (eg /user/foo) you wouldn't have conflicts; but as it stands currently, using .htaccess to rewrite your URLs in that format could potentially cause problems with many other parts of your app.

To do it with a separate URI format, change your last .htaccess line (the RewriteRule) to:

RewriteRule ^user/(.+)/?$ userpage.php?user=$1 [NC,L]

may want to consider adding QSA as well.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜