Mod_Rewrite
Ik probeer mod_rewrite te begrijpen en te implenteren. En dat gaat me behoorlijk zwaar af.
Mijn idee is.
Bezoekers kunnen een taal kiezen.
Vervolgens kan de bezoeker ook nog door de pagina's heen zoeken.
Dan hebben we dus home, search etc.
De link bij het kiezen van de taal.
Code (php)
1
<a href="Nederlands" ><img src="images/flagicons/NL.png" title="Nederlands" width="25" height="50"></a>
Het scriptje bij het kiezen van de pagina, als de taal al geselecteerd is.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
if (isset($language) and isset($menu))
{
$url_menu = $language."/";
}
elseif (isset($language) and !isset($menu))
{
$url_menu = $language ."/" ;
}
else
{
$url_menu = "English/" ;
}
?>
<div id="links">
<a href="<?php echo $url_menu ; ?> home" >Home</a>
<a href="<?php echo $url_menu ; ?> optie2">pagina2</a>
<a href="<?php echo $url_menu ; ?> optie3">pagina3</a>
</div>
if (isset($language) and isset($menu))
{
$url_menu = $language."/";
}
elseif (isset($language) and !isset($menu))
{
$url_menu = $language ."/" ;
}
else
{
$url_menu = "English/" ;
}
?>
<div id="links">
<a href="<?php echo $url_menu ; ?> home" >Home</a>
<a href="<?php echo $url_menu ; ?> optie2">pagina2</a>
<a href="<?php echo $url_menu ; ?> optie3">pagina3</a>
</div>
.htaccess
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
Rewritebase /travel/
# Onderstaande heb ik uitgezet omdat dit altijd weer roet in het eten gooit.
# RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
# Wanneer ik bij onderstaande regel de [R] verander in [L], verdwijnen de afbeeldingen en wordt de url bij elke klik langer, met de nieuwe waarden. Bij [R] zie ik de url als index.php?var1=nederlands&var2=home en bij elke klik gaat het goed.
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index.php?var1=$1&var2=$2 [R]
# Deze is voor het kiezen van de talen, dit zet in de url-balk localhost/root/nederlands, en de rest blijft ook goed.
RewriteRule ^([a-zA-Z0-9]+)$ index.php?var1=$1 [L]
</IfModule>
Options +FollowSymLinks
RewriteEngine on
Rewritebase /travel/
# Onderstaande heb ik uitgezet omdat dit altijd weer roet in het eten gooit.
# RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
# Wanneer ik bij onderstaande regel de [R] verander in [L], verdwijnen de afbeeldingen en wordt de url bij elke klik langer, met de nieuwe waarden. Bij [R] zie ik de url als index.php?var1=nederlands&var2=home en bij elke klik gaat het goed.
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index.php?var1=$1&var2=$2 [R]
# Deze is voor het kiezen van de talen, dit zet in de url-balk localhost/root/nederlands, en de rest blijft ook goed.
RewriteRule ^([a-zA-Z0-9]+)$ index.php?var1=$1 [L]
</IfModule>
Ik heb geen idee, wat ik fout doe, of wat anders zou moeten. Ik ben (nog) niet met mod_rewrite begaan.
Bij voorbaat dank.
groeten wouter
Gewijzigd op 16/11/2010 11:50:31 door Wouter H
Zet bovenaan in je head dit is:
En dan in je .htaccess file toch die [R] vervangen door [L]
Ik de code toegevoegd in de head van de pagina.
travel is de naam van de root directory.
de [R] is vervangen door de [L]
Het gaat nu nog steeds goed wanneer ik gewoon tussen de talen kies.
Kies ik vervolgens voor een pagina dan ziet de url er uit zoals ik wil.
De css regels en de afbeeldingen zijn daarbij dan verdwenen.
klik ik nog een keer op een link dan is dit het resultaat
Misschien heb ik wat mis met de $url_menu variabele. Dat ga ik nu proberen
Toevoeging op 16/11/2010 12:20:28:
Als dat niet lukt, poep je hele code hier dan even neer.
Ik heb het geprobeerd maar helaas,
hier komt ie dan
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $title; ?></title>
<link href="/css/phone.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 0px) and (max-width: 320px)" />
<link href="/css/tablet.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 321px) and (max-width: 768px)" />
<link href="/css/main.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 769px)" />
<base href="travel" />
</head>
<body>
<?php
@$language = $_GET['var1'];
@$menu = $_GET['var2'];
?>
<div id="subdomain">
<p>
<a href="Deutsch" ><img src="/images/flagicons/DE.png" title="Deutsch" width="25" height="50"></a>
<a href="English"><img src="/images/flagicons/EN.png" title="English" width="25" height="50"></a>
<a href="Nederlands" ><img src="/images/flagicons/NL.png" title="Nederlands" width="25" height="50"></a>
</p>
</div>
<?php
if (isset($language) and isset($menu))
{
$url_menu = $language."/";
}
elseif (isset($language) and !isset($menu))
{
$url_menu = $language ."/" ;
}
else
{
$url_menu = "English/" ;
}
?>
<div id="links">
<a href="<?php echo $url_menu ; ?>home" title="Home">Home</a>
<a href="<?php echo $url_menu ; ?>optie2" title="pagina2">pagina2</a>
<a href="<?php echo $url_menu ; ?>optie3" title="pagina3">pagina3</a>
</div>
<?php
echo "<h1>$welcome</h1>" ;
if (isset($_GET['var1']) and isset($_GET['var2']))
{
echo $_GET['var1'] ;
echo "<br>";
echo $_GET['var2'];
}
*/
?>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $title; ?></title>
<link href="/css/phone.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 0px) and (max-width: 320px)" />
<link href="/css/tablet.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 321px) and (max-width: 768px)" />
<link href="/css/main.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 769px)" />
<base href="travel" />
</head>
<body>
<?php
@$language = $_GET['var1'];
@$menu = $_GET['var2'];
?>
<div id="subdomain">
<p>
<a href="Deutsch" ><img src="/images/flagicons/DE.png" title="Deutsch" width="25" height="50"></a>
<a href="English"><img src="/images/flagicons/EN.png" title="English" width="25" height="50"></a>
<a href="Nederlands" ><img src="/images/flagicons/NL.png" title="Nederlands" width="25" height="50"></a>
</p>
</div>
<?php
if (isset($language) and isset($menu))
{
$url_menu = $language."/";
}
elseif (isset($language) and !isset($menu))
{
$url_menu = $language ."/" ;
}
else
{
$url_menu = "English/" ;
}
?>
<div id="links">
<a href="<?php echo $url_menu ; ?>home" title="Home">Home</a>
<a href="<?php echo $url_menu ; ?>optie2" title="pagina2">pagina2</a>
<a href="<?php echo $url_menu ; ?>optie3" title="pagina3">pagina3</a>
</div>
<?php
echo "<h1>$welcome</h1>" ;
if (isset($_GET['var1']) and isset($_GET['var2']))
{
echo $_GET['var1'] ;
echo "<br>";
echo $_GET['var2'];
}
*/
?>
</body>
</html>
.htaccess
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
# Rewritebase /travel/
# RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index.php?var1=$1&var2=$2 [L]
RewriteRule ^([a-zA-Z0-9]+)$ index.php?var1=$1 [L]
</IfModule>
Options +FollowSymLinks
RewriteEngine on
# Rewritebase /travel/
# RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index.php?var1=$1&var2=$2 [L]
RewriteRule ^([a-zA-Z0-9]+)$ index.php?var1=$1 [L]
</IfModule>
Gewijzigd op 16/11/2010 12:38:15 door wouter H
En waarom een @ op lijn 16 en 17?
Als je dan dus (zoals ik je zei) een / ervoor doet en daarmee naar de root teruggaat, zou je er dan misschien, heel misschien even de map voor moeten doen?
/travel/css/etc...
Gewijzigd op 16/11/2010 13:07:31 door John Cena
De base ahref heb ik aangepast naar:
<base href="http://localhost/travel"/>
Aangezien ik het lokaal aan het samenbreien ben.
En dat werkt!
Bedankt!
Dan nog de .css bestanden. Deze worden niet gepakt. Met en zonder de '/' aan het begin van het pad.
Dat was hem. Dat kwartje was niet gevallen. Maar het werkt...
thanx
Gewijzigd op 16/11/2010 13:26:39 door wouter H
Het werkt nu goed? :-)
Yes het werkt! bedankt nogmaals
In Firefox and Google Chrome werkt alles super.
Maar nu heb ik het gezeur dat ik in Internet Explorer niets zie! Waar kan dat vandaan komen?
Alle php doet het, alle html is zichtbaar, images ook! Alleen de css wordt niet uitgevoerd.
Code is verder niet gewijzigd.
Gewijzigd op 17/11/2010 15:52:51 door wouter H
Heb je een live voorbeeldje voor ons??
maar dit is de bron:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>A2B</title>
<base href="http://localhost/travel/" />
<link href="http://localhost/travel/css/phone.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 0px) and (max-width: 320px)" />
<link href="http://localhost/travel/css/tablet.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 321px) and (max-width: 768px)" />
<link href="http://localhost/travel/css/main.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 769px)" />
<link rel="shortcut icon" href="favicon.ico" />
<meta name="description" content="omschrijving" />
<meta name="keywords" content="keywords" />
<meta name="copyright" content="Wouter" />
<meta name="author" content="Wouter" />
<meta name="generator" content="Wouter" />
<meta name="language" content="Nederlands" />
<meta name="revisit-after" content="5" />
<meta name="robots" content="index" />
<meta name="robots" content="follow" />
<meta name="robots" content="all" />
</head>
<body>
<div id="container">
<div id="header">
<div id="language">
<p>
<a href="Deutsch" "><img src="images/flagicons/DE.png" title="Deutsch" ></a>
<a href="English" ><img src="images/flagicons/EN.png" title="English" ></a>
<a href="Nederlands" ><img src="images/flagicons/NL.png" title="Nederlands" ></a>
</p>
</div>
<p>header logo/ kleuren / menu van links naar rechts</p>
<div id="menu" class="main-div">
<div id="menuItem">
<p><a href="Nederlands/Liften/home" title="A2B">Home</a></p>
</div>
<div id="menuItem">
<p><a href="Nederlands/Liften/zoeken" title="A2B Lift zoeken">Lift zoeken</a></p>
</div>
<div id="menuItem">
<p><a href="Nederlands/Liften/offer" title="A2B Lift offer">Lift offer</a></p>
</div>
</div>
<div id='breadcrumbs' ><div class='main-div'><p><a href='Nederlands'>Nederlands</a><span class='light-green'> | </span>travel</p></div></div> </div> <!-- Einde header -->
<div id="main-content" class="main-div">
<div id="content" class="sub-div">
<h1>index.php</h1>
<h2>kop 2</h2>
<h3>kop 3</h3>
<h4>kop 4</h4>
<p>paragraph</p> </div> <!-- einde content -->
<div id="sidebar" class="sub-div">
<p>LEEG</p>
</div> <!-- Einde sidebar-->
</div> <!-- einde main content -->
<div id="footer">
<p>footer</p>
</div> <!-- Einde footer-->
</div><!-- Einde container -->
</body>
</html>
<base href="http://localhost/travel/" />
moet je van
<link href="http://localhost/travel/css/main.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 769px)" />
dit maken:
<link href="css/main.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 769px)" />
maar helaas helpt het niet.
Ik heb het ook andersom geprobeerd, dus base href weg en dan de link href compleet.
Ook dat mag niet baten.
Toevoeging op 17/11/2010 18:01:06:
Als ik het gedeelte:
media="only screen and (min-width: 769px"
weg laat. Doet de pagina het.
Maar! Dan wordt bij een smaller beeldscherm dus niet een ander css bestand geladen.
thanx