Home > Net >  RewriteRule in htaccess only work when I visit url directly
RewriteRule in htaccess only work when I visit url directly

Time:09-02

I have htaccess file where I am turning regurlar url
example.com/result?from=Brampton&to=Calgary&submit= to
Rides-From-Toronto-Calgary-submit seo friendly url. But problem is that I manually have to type url to visit seo friendly version of url, how can I achieve redirect using .htaccess ?

This is what I have so far

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^from [NC]
RewriteRule ^Rides-From-([^/]*)-([^/]*)-([^/]*)$ result?from=$1&to=$2&submit=$3 [QSA,NC,L,R=301]

any help is appreciated.

CodePudding user response:

With your shown samples and attempts please try following .htaccess rules file. Please make sure to clear your browser cache before testing your URLs.

Also these Rules consider that your internal rewrite is happening to index.php file in case its something else file then please change its name to it in rules.

RewriteEngine ON
##External redirect rules.
RewriteCond %{THE_REQUEST} \s/result\.php\?from=([^&]*)&to=([^&]*)&submit=(\S )\s [NC]
RewriteRule ^  /Rides-From-%1-%2-%3=%3? [R=301,L]

##Internal rewrite rules from here...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(?:.*?-){2}([^-]*)-([^-]*)-([^-]*)=(. )/?$ result.php?from=$1&to=$2&$3=$3 [QSA,L]
  • Related