I have solved the problem and wanted to share here how.
The underlying problem here was the loading of all content with JQuery. While my initial URI was wrong, http://example.com/?tag=news#blog did not solve it either. The variable was never sent to the $_GET Array of PHP, because the index.html does not contain any PHP and the script is loaded into a div via JQuery/Ajax.
So the solution here was to modify my JQuery Function:
function navigate(theHash)
{
var parsed = theHash;
var tag = '';
if ( theHash.indexOf("/") != -1 ){ /* Check if there is a trailing slash in the string */
parsed = theHash.substr(0, theHash.indexOf("/"));
}
if ( theHash.indexOf(",") != -1 ){ /* Check for Parameters to send to PHP */
parsed = theHash.substr(0, theHash.indexOf(","));
tag = theHash.substr(theHash.indexOf(','), theHash.length);
}
if ( parsed.localeCompare("#!portfolio") == 0 ){
$('#content').load('portfolio.html');
}
else if ( parsed.localeCompare("#!blog") == 0 ){
if ( tag.localeCompare('') != 0 )
{
$("#content").load('blog.html?tag='+tag.substr(1, tag.length));
}
else{
$("#content").load('blog.html');
}
}
else{
$('#content').load('front.html');
}
}
So with the little change in the blog part of the if statement to load the html page with the parameter appended (which contains the php code), the variable gets transported correctly to PHP and I can read it via $_GET. While this is only a first draft and needs to get refined for more parameters and more robust behavior, it shows how I solved the issue.