php - Dynamic URL rewrite using .htaccess -
i pretty new .htaccess rewrites, , i'm trying create rules dynamically rewrite urls.
for example, user enters next url:
http://example.com/xxx/?user=2002
it rewritten into:
http://example.com/xxx/user/2002/
if user passes multiple parameters this:
http://example.com/xxx/?user=2002&activity=100&result=true
it should become:
http://example.com/xxx/user/2002/activity/100/result/
note: query strings dynamically generated.
this have come with:
<ifmodule mod_rewrite.c> rewriteengine on rewritebase /news/ rewriterule ^index\.php$ - [l] rewritecond %{request_filename} !-f rewritecond %{request_filename} !-d rewriterule . /news/index.php [l] </ifmodule>
update
i tried create above code , query string rewrite code work together. modified .htaccess looks below:
<ifmodule mod_rewrite.c> rewriteengine on rewritebase /news/ rewriterule ^index\.php$ - [l] rewritecond %{request_filename} !-f rewritecond %{request_filename} !-d rewriterule . /news/index.php [l] # first take out query string /xxx/ urls rewritecond %{query_string} ^.+$ rewriterule ^news/?$ %{request_uri}/%{query_string}? [l] # convert & / rewriterule ^([^&]+)&(.*)$ $1/$2 [l] # convert = / rewriterule ^([^=]+)=([^=]+=.*)$ $1/$2 [l] rewriterule ^([^=]+)=([^=]+)$ $1 [l,r] # internal rule replace /n1/v1/n2/v2 query_string rewriterule "^(news)/([^/]+)/([^/]*)(/.*)?$" /$1$4?$2=$3 [l,qsa] </ifmodule>
really tricky rules these are. set these recursive rules in root .htaccess:
rewriteengine on rewritebase /news/ # first take out query string urls rewritecond %{the_request} \?\s+ rewriterule ^/?$ %{query_string}? [l] # convert & / rewriterule ^([^&]+)&(.*)$ $1/$2 [l] # convert = / rewriterule ^([^=]+)=([^=]+=.*)$ $1/$2 [l] rewriterule ^([^=]+)=([^=]+)$ $1/$2 [l,r] # internal rule replace /n1/v1/n2/v2 query_string rewriterule "^([^/]+)/([^/]*)(?:/(.*))?$" $3?$1=$2 [l,qsa] ## existing stuff followed rewriterule ^index\.php$ - [l] rewritecond %{request_filename} !-f rewritecond %{request_filename} !-d rewriterule . index.php [l]
php .htaccess mod-rewrite url-rewriting
No comments:
Post a Comment