问题
I'm getting crazy with .htaccess and rewrite rule. I'd like to understand how it works, I hate it, anyway here's my problem.
(really simple for most of you)
My site has one main page index.php
.
This is the only page, all the others are handled by this one.
I did a simple RewriteRule
:
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1
to do this:
/index.php?page=VAL -> /VAL
But I don't know how create a rule for this:
/index.php?page=VAL&var1=VAL2&var2=VAL3 etc.
I'd like a final URL like:
/VAL/VAL2/VAL3 etc.
Thanks
回答1:
You could just rewrite the request to your index.php and parse the requested URI path with PHP:
$_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$segments = implode('/', ltrim($_SERVER['REQUEST_URI_PATH'], '/'));
And the rule to that:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.php$ index.php [L]
This will rewrite every request, that’s URI path can not be mapped to an existing file, to your index.php.
来源:https://stackoverflow.com/questions/2435833/htaccess-rewrite-rule