user3079783
user3079783

Reputation: 21

PHP htaccess instead of $_GET

Im trying to make a referal system for my sighnup on my website. My current htaccsess file is below

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1

Is there a way of doing /refferall/Something instead of just /Something but keeping the normal /Something as well? My attempt below at the referral one. But it just reported:

Object not found! The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again. If you think this is a server error, please contact the webmaster.

Error 404 127.0.0.1 Apache/2.4.4 (Win32) OpenSSL/1.0.1e PHP/5.5.3

========================================================

My attempted htaccess of /referall/something

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)referal/$1 index.php?refferal=$1
RewriteRule ^([a-zA-Z0-9_-]+)/referall/$1 index.php?refferal=$1
RewriteRule ^([a-zA-Z0-9_-]+)referall/$1 index.php?refferal=$1

Full, With both

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_-]+)referal/$1 index.php?refferal=$1
RewriteRule ^([a-zA-Z0-9_-]+)/referall/$1 index.php?refferal=$1
RewriteRule ^([a-zA-Z0-9_-]+)referall/$1 index.php?refferal=$1

Upvotes: 2

Views: 81

Answers (1)

Peter van der Wal
Peter van der Wal

Reputation: 11796

([a-zA-Z0-9_-]+) means 1 ore more characters (of the specified type within the brackets).

What you need is the following htaccess (optimized the existing part a bit)

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?page=$1
RewriteRule ^referal/([a-zA-Z0-9_-]+)/?$ index.php?referral=$1

Note: you have some types in referral (it's single f, single l).

Upvotes: 2

Related Questions