I am encountering a problem with a get parameter in conjunction with a htaccess rewrite rule. Below is the urlencode()'ed link; the rewrite rule I use to redirect to index.php, and lastly, a print_r($_GET) on the index.php. As you can see, the urlescaped ampersand is not part of the value for variable static, but instead and contrary to my expectation gets interpreted as a variable seperator. Why?
Initial link:
<a href="static/Game-Tech-%26-Arts-Lab">link</a>
.htaccess:
RewriteRule ^static/(.*)$ /index.php?static=$1 [L]
index.php:
Array ( [static] => Game-Tech- [-Arts-Lab] => )
Ah, okay. Interesting. It seems there is a special solution for keeping that ampersand specifically escaped. Use the [B]
flag for Rewriterules.
RewriteRule ^static/(.*)$ /index.php?static=$1 [L,B]
This is supposed to urlencode special characters when interpolating the $1
placeholder. It only works with Apache 2.2 however I believe.
Found a few references:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With