Hamy
Hamy

Reputation: 21

URL Rewrite - Query String

I have a news (blog) site that returns urls in the following format when individual posts are selected:

website.net/sitenews.php?q=posts/view/postname/12

I am seeking to rewrite the url so that it reads:

website.net/sitenews.php/posts/view/postname/12

or any other way where the ?q= is removed for purpose of removing the ? so that the url can be accessed by facebook's like button as the facebook url linter does not parse query strings.

In the htdocs .htaccess file in the root directory I have tried the following:

Options +FollowSymLinks 

RewriteEngine on

RewriteCond %{QUERY_STRING} q=  

RewriteRule (.*) website.net/sitenews.php/$1? [R=301]

This successfully removes the q=? however the rest of the string (posts/view/postname/12) is not returned and the url now looks as follows:

 website.net/sitenews.php/sitenews.php

Does anyone have any suggestions to help me complete this url_rewrite?

Upvotes: 2

Views: 4199

Answers (2)

anubhava
anubhava

Reputation: 784918

Try this instead in your .htaccess:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{QUERY_STRING} ^q=(.*)$ [NC]
RewriteRule ^(.*)$ /$1/%1? [R=301,L,NE]

R=301 will redirect with https status 301
L will make last rule
NE is for no escaping query string

%1 is capture group for query string q= (whatever comes after q=)
$1 is your REQUEST_URI

Upvotes: 2

Niraj Chauhan
Niraj Chauhan

Reputation: 7880

If you are using any CMS, like wordpress, or joomla or SE, then you have option to do that else you need to have an .htaccess file where you can write the code, refer this links

http://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html

http://www.webmasterworld.com/forum92/2545.htm

http://www.google.com/#sclient=psy&hl=en&q=htaccess+change+the+url&aq=0p&aqi=p-p1g4&aql=&oq=htaccess+&pbx=1&bav=on.2,or.r_gc.r_pw.&fp=c875dd2b8adea15a

Upvotes: 0

Related Questions