Is it good pratice to hide $_GET in URL with .htaccess? - .htaccess

Let me show you a simple example to demonstrate it.
You got this URL :
www.bowling.com/account.php?id=30&pref=t,s,m&cr=32
Then, with .htaccess you do this following :
RewriteEngine On
RewriteRule ^Your-Account/Identity/$1/?$ account.php?id=$1&pref=$2&cr=$3 [flag(s) u want]
Now, instead of having the first URL, y'all can guess, I got this back :
www.bowling.com/account.php?Identity/30/
The two next $_GET var are now invisible in your URL. Is this a good security secure or just a waste of time? What's your opinion?

Related

How can I solve this .htaccess rewrite?

I need to make this simple rewrite, but I'm probably wrong because it doesn't work.
Original url format: http://www.mydomain.nop/folder/component/option,com_seminar/cid,134/task,3/
New url format: http://www.mydomain.nop/folder/component/eventbooking/seminar/134
The variables I need are these:
.../component/option,com_seminar/cid,num1/task,num2/
(the one after 'task,' is a variable number like the other but not necessary for the new url)
This is my code which however reports a 404 error
RewriteEngine On
...
RewriteRule ^/component/option,com_seminar/cid,([^/]*)/task,([^/]*)/$ /component/eventbooking/seminar/$1 [R=301,L]
Thanks in advance and apologize for my not perfect english
PS. I would like the code to work even without the last / of the original url

.htaccess rewrite url that has already been changed

I am upgrading my site which involves new scripts and a different URL
structure. There are currently a few thousand pages so I want to
basically move them in to a subdirectory so that they are not lost.
I am not very confident with htaccess so can someone please confirm that
the first part I have done is correct:
Old URL: http://www.example.com/article/another-dir/page-group/whatever.html
RewriteRule ^article/?$ http://www.example.com/archive/ [R=301,NC,L]
To achieve this: http://www.example.com/archive/another-dir/page-group/whatever.html
Search engines will see the above as a permanent move and in the address bar
it will show the new url. Is this right?
The second part is on the new script - the url's could be improved but I am
unable to change all the script so thought about using htaccess again but am
not sure if it can be achieved like this.
At the moment the url looks like this:
url: http://www.example.com/category/4/categoryname
In the htaccess the current rewrite rule for this type of url looks like this:
RewriteRule ^category/(.*)/(.*)$ category.php?id=$1&slug=$2
Is it possible to change this so that in the url address bar I end up
with this:
http://www.example.com/categoryname
Basically I don't want to see either the number or category/ in the resulting
url as it will be easier for visitors to use - is that possible??
Thanks in advance for any help.
The second question related to passing in URI components for querystring redirect and then hiding those components in the URL I don't think would be easy, if even possible, using RewriteRules.
For the first question though. Given the sample URLs you mentioned, the RewriteRule would need to include capture and backreference if you want to preserve the full URL in the redirection. For example:
RewriteRule ^article/?(.*)$ http://www.example.com/archive/$1 [R=301,NC,L]

Problems with a simple URL rewrite (htaccess)

I can't get a simple htaccess rewrite to work.
RewriteEngine On
RewriteRule ^([^/]*)\.html$ /?id=$1 [L]
I went to mysite.com/?id=blah expecting to end up on mysite.com/blah.html. What's wrong?
This is not how htaccess works. It doesn't re-write the URL visible to the user, rather it looks more like an invisible re-direct.
I'm not even sure what that rewrite in the question is supposed to be doing... BUT, for explanation purposes, let's say you wanted a user to be able to go to:
mysite.com/blah/
but you wanted the server to see it as:
mysite.com/index.php?page=blah
You could do this:
RewriteRule blah/ index.php?page=blah
The user would ALWAYS SEE WHAT THEY TYPED IN. It's not going to change the URL in the browser bar (that would be a header redirect or something, which is completely different and not really related).

.htaccess url masking

I have a couple of wordpress urls that I want to simplify for SEO purposes. I have
http://www.example.com/fr/product-fr/review-fr/
I would like to change that to http://www.example.com/fr/product/review/ (remove -fr) but without changing the URL internally. So the user would access http://www.example.com/fr/product/review/ but the server would serve the content of http://www.example.com/fr/product-fr/review-fr/.
I want to do this to get around a URL problem with Wordpress and WPML.
Appreciate the help
Assuming the two letter lang code is always going to be constant throughout the URL:
RewriteEngine on
RewriteRule ^([A-Za-z]{2})/product/review$ /$1/product-$1/review-$1 [L,QSA]
should work a treat :)
P.S. the regexp takes any two-letter code (upper or lower case) so will work with other langs should you require.
Have you tried mod_rewrite and Rewrite rules?
Try:
^/([a-zA-Z]{2})/([^\/]+)/([^\/]+)/$ /$1/$2-$1/$3-$1
Haven't tested this though..

.htaccess redirect/rewrite help needed

I am writing htacess redirect rule but it is not working properly I have tried many solutions but simply it is not working.
What I want to do is to
I have url http://example.com/cms/index.php?page=filename I want this url to be executed and show appropriate page but in browser it should show example.com/cms. And what is important is I only want to right this rule for this page only and it should not effect to other pages.
Thank you.
RewriteRule ^([^/]+)/$ /cms/index.php?filename=$1 [L,QSA]
The L at the end says it is the last rule (stop processing) and QSA means 'Query String Append', so if someone puts other parameters after it, such as:
http://example.com/cms.htm?order=desc
The GET value for order will be passed also - without it it'll just quietly drop it.
Something like this ought to work:
RewriteEngine on
RewriteRule ^http://example.com/cms$ http://example.com/cms/index.php?page=filename
...should work.
Have a look at a tutorial with some examples if you're interested in seeing what else you can do.

Resources