Rewrite up to three folders into three query string parameters to a PHP script
10,937
You can use these three rewrite rules which handle up to 3 levels of directories:
RewriteEngine on
RewriteRule ^main\/([^\/]+)\/([^\/]+)\/([^\/]+)\/? /parser.php?var1=$1&var2=$2&var3=$3 [L]
RewriteRule ^main\/([^\/]+)\/([^\/]+)\/? /parser.php?var1=$1&var2=$2 [L]
RewriteRule ^main\/([^\/]+)\/? /parser.php?var1=$1 [L]
In those regular expressions:
^main\/
: starts with "main/"([^\/]+)
: a bunch of characters that are not slashes (in a capturing group to be pulled out with$1
,$2
, or$3
)\/?
an optional ending slash[L]
the last rewrite rule (so that later rewrite rules don't also get triggered)
I usually prefer to pass all the folders as a single variable like so:
RewriteEngine on
RewriteRule ^main\/(.*) /parser.php?folders=$1
then your PHP parser could split the folders on the slash to get the three variables you want.
Related videos on Youtube
Author by
Dan
Updated on September 18, 2022Comments
-
Dan over 1 year
I'd like to use mod_rewrite within the
.htaccess
file to rewrite folders to avar string
. Below is examples of current and what I would prefer.- Current URL:
example.com/main/folder1/folder2/folder3
- Preferred URL:
example.com/parser.php?var1=folder1&var2=folder2&var3=folder3
How can I rewrite the current URL's to preferred URLs?
- Current URL: