4

i am trying to convert the actual URL to user friendly there is dynamic menu, when user click on page the orignal url becomes

http://example.com/single.php?name=mypagename

i want to change it to

http://example.com/page/mypagename

here is my htaccess file i tried from different angles Please can any one help to correct it..

# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymlinks -Multiviews
Options +SymLinksIfOwnerMatch -Multiviews
RewriteEngine on
RewriteBase /

RewriteCond %{THE_REQUEST} ^(GET|HEAD|POST)\ /single\.php(\?|\ )
RewriteCond %{QUERY_STRING} name=(.+)
RewriteRule page/(.*) single.php?name=$1
RewriteRule ^ /page/%1? [L,R=301]
Engr Saddam Zardari
  • 1,057
  • 1
  • 14
  • 27
  • possible duplicate of [Reference: mod\_rewrite, URL rewriting and "pretty links" explained](http://stackoverflow.com/questions/20563772/reference-mod-rewrite-url-rewriting-and-pretty-links-explained) – Maks3w Feb 27 '15 at 10:38

3 Answers3

1

You must rearrange your directives:

# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymlinks -Multiviews
Options +SymLinksIfOwnerMatch -Multiviews
RewriteEngine on
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+single\.php\?name=([^\s&]+) [NC]
RewriteRule ^ /page/%1? [L,R=301]

RewriteRule ^page/(.*)$ single.php?name=$1 [L,NC,QSA]

RewriteCond %{THE_REQUEST} \s/+(Web/2015/wessexcars)/internalpage\.php?seo=\?name=([^\s&]+) [NC]
RewriteRule ^ %1/%2? [L,R=301]

RewriteRule ^(Web/2015/wessexcars)/(.+?)/?$ $1/internalpage.php?seo=$1 [L,NC,QSA]
anubhava
  • 761,203
  • 64
  • 569
  • 643
0

Try like bellow,

RewriteEngine on    
RewriteRule ^/page/([a-zA-Z-0-9-]+)$ $1/single.php?name=$2 [NC]
rdanusha
  • 913
  • 3
  • 15
  • 24
0

firstly change your config file make index file blank

$config['index_page'] = '';

and make a htaccess file

    <ifmodule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{REQUEST_URI} ^system.*
        RewriteRule ^(.*)$ /index.php/$1 [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php/$1 [L]
    </ifmodule>
4302836
  • 387
  • 1
  • 6
  • 14