Davie33 Posted February 2, 2012 Share Posted February 2, 2012 Hi am trying to make my urls like this with username instead of id numbers. http://www.mysite.com/index.php?act=showmember=davie33 And like this. http://www.mysite.com/showmember/davie33.html This is my code for seo yes and no.How do i redo this ?. if ( $seo=='yes') { $memberlink = $siteurl.'showmember/'.$id.'.html'; } else { $memberlink = $siteurl . 'index.php?act=showmember&id='.$id; } And how would i do this for htaccess file ?. Quote Link to comment https://forums.phpfreaks.com/topic/256268-url-help-please/ Share on other sites More sharing options...
MadTechie Posted February 2, 2012 Share Posted February 2, 2012 try this RewriteEngine on RewriteRule ([^/]+)/([^/]+)\.html$ /act=$1=$2 [L] and this http://www.mysite.com/ABC/davie33.html should become http://www.mysite.com/act=ABC=davie33 OR RewriteEngine on RewriteRule showmember/([^/]+)\.html$ /act=showmember=$1 [L] for sticky showmember Quote Link to comment https://forums.phpfreaks.com/topic/256268-url-help-please/#findComment-1313760 Share on other sites More sharing options...
Davie33 Posted February 2, 2012 Author Share Posted February 2, 2012 try this RewriteEngine on RewriteRule ([^/]+)/([^/]+)\.html$ /act=$1=$2 [L] and this http://www.mysite.com/ABC/davie33.html should become http://www.mysite.com/act=ABC=davie33 OR RewriteEngine on RewriteRule showmember/([^/]+)\.html$ /act=showmember=$1 [L] for sticky showmember so for the php code part of it would i fix that if i use option one ?. if ( $seo=='yes') { $memberlink = $siteurl.'showmember/'.$id.'.html'; } else { $memberlink = $siteurl . 'index.php?act=showmember&id='.$id; } Quote Link to comment https://forums.phpfreaks.com/topic/256268-url-help-please/#findComment-1313764 Share on other sites More sharing options...
MadTechie Posted February 2, 2012 Share Posted February 2, 2012 If that .htaccess file exists and apache mod_rewrite is on, then both links 1. http://www.mysite.com/showmember/davie33.html 2. http://www.mysite.com/showmember=ABC=davie33 will go to index.php Where as without the .htaccess file only link 2 would work the PHP would just need to use $_GET['showmember'] to get davie33 **Correction!** showmember=ABC=davie33 ??? this that right ? I assume you mean ?act=ABC&id=davie33 Update .htaccess to RewriteRule ([^/]+)/([^/]+)\.html$ /?act=$1&id=$2 [L] thus $_GET['id'] would be davie33 and $_GET['act'] would be showmember Quote Link to comment https://forums.phpfreaks.com/topic/256268-url-help-please/#findComment-1313766 Share on other sites More sharing options...
Davie33 Posted February 2, 2012 Author Share Posted February 2, 2012 As far as i have just been told that having 2 = is bad for url as i would need something like this &id=1&name=arcadedude. man now am getting well :S with this. Quote Link to comment https://forums.phpfreaks.com/topic/256268-url-help-please/#findComment-1313770 Share on other sites More sharing options...
MadTechie Posted February 2, 2012 Share Posted February 2, 2012 Its bad for SEO, BUT required for code But as your going to be using pretty URL's that are good for SEO, so it will cancel out the bad So here is the logic <?php echo "Action ".$_GET['act']; echo "\n<br />"; echo "I am Member ".$_GET['id']; ?> Add .htaccess RewriteEngine on RewriteRule ([^/]+)/([^/]+)\.html$ /?act=$1&id=$2 [L] Now test test links (OLD style) with 2 gets http://www.mysite.com/?act=showmember=&id=davie33 http://www.mysite.com/?act=killuser=&id=davie33 test links (NEW style) with well none! http://www.mysite.com/showmember/davie33.html http://www.mysite.com/killuser/davie33.html Quote Link to comment https://forums.phpfreaks.com/topic/256268-url-help-please/#findComment-1313774 Share on other sites More sharing options...
Davie33 Posted February 2, 2012 Author Share Posted February 2, 2012 This is my act from my index.php switch($_GET['act']){ case 'showmember': include ("templates/".$theme."/showmember.php"); break; } this is my R/rule RewriteRule showmember/(.*)\.html$ index.php?act=showmember&id=$1 I want to keep it in same format but without the id number showing. This is my php code link that will show my members. <a href="<?php echo $memberlink;?>"><?php echo $username;?></a> Which takes me to http://www.mysite.com/index.php?act=showmember&id=2 http://www.mysite.com/showmember/2.html How do i do it like you said but keeping it in same format with showmember in link like this http://www.mysite.com/index.php?act=showmember$id=davie33 <<<<< as username http://www.mysite.com/showmember/davie33.html I know it works like this. if ( $seo=='yes') { $memberlink = $siteurl.'showmember/'.$id.'/'.$username.'.html'; } else { $memberlink = $siteurl . 'index.php?act=showmember&id='.$id.'='.$username; } Which gives u link like this. http://www.mysite.com/showmember/1/davie33.html http://www.mysite.com/index.php?act=showmember$id=1=davie33 Which is bad for the 2nd link. Am just trying to break it down abit for you from my code and i am trying to understand what your saying. Quote Link to comment https://forums.phpfreaks.com/topic/256268-url-help-please/#findComment-1313787 Share on other sites More sharing options...
MadTechie Posted February 3, 2012 Share Posted February 3, 2012 what your need to do is add a routine to allow lookups by UserName, for example I assume it currently has a SQL statement like this SELECT * FROM Users WHERE userID= $_GET['id'] your need to update it to something like this SELECT * FROM Users WHERE username= $_GET['username'] then add the htaccess RewriteEngine on RewriteRule showmember/([^/]+)\.html$ /?act=$1&username=$2 [L] Now in the showmember.php file, i assume you have if(isset($_GET['id'])){ $query = mysql_query("SELECT * FROM Users WHERE userID=%d",$_GET['id']); } you could update that so it handles both ie if(isset($_GET['id'])){ $query = mysql_query("SELECT * FROM Users WHERE userID=%d",$_GET['id']); }elseif(isset($_GET['username'])){ $query = mysql_query("SELECT * FROM Users WHERE userID=%d",$_GET['id']); } Quote Link to comment https://forums.phpfreaks.com/topic/256268-url-help-please/#findComment-1313854 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.