framework klaar maar htaccess doet t niet goed
www.domain.nl
www.domain.nl/muziek
gaat naar de subfolder public_html/public/index.php
maar ook dus www.domain.nl/muziek naar public_html/public/index.php
ik heb in public_html een htaccess gemaakt maar weer verwijderd en alles geprobeerd,
hij deed het alleen voor www.domain.nl maar dan ging die wel naar www.domain.nl/public.
dat ging opzich nog wel maar zodra ik naar
wwww.domain.nl/muziek ging kreeg ik Not Found
wie kan mij hiermee helpen het is de enige obstakel nog voordat ik me eerste framework af is
Hoe ziet je .htaccess bestand er nu uit?
ja zo lukt het wel even kijken of het toch nog met public kan want zo was het orgineel ook
En nog handiger zou een concreet voorbeeld zijn.
maar in de subfolder public
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?p=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?p=$1 [QSA,L]
moet ik nou ook een htaccess maken in de root folder?
Toevoeging op 28/03/2015 17:41:49:
alles werkt maar wel heel de tijd met public in de url
Toevoeging op 28/03/2015 17:42:13:
dus hoe dit
Toevoeging op 28/03/2015 17:44:44:
dankjewel
Toevoeging op 28/03/2015 17:54:35:
update
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ErrorDocument 404 /404.html
# .htaccess main domain to subdirectory redirect
# Do not change this line.
RewriteEngine on
RewriteBase /
# Change example.com to be your main domain.
RewriteCond %{HTTP_HOST} ^(www.)?tibles.nl$
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/public/
# Don't change the following two lines.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteRule ^(.*)$ /public/$1
# Change example.com to be your main domain again.
# Change 'subdirectory' to be the directory you will use for your main domain
# followed by / then the main file for your site, index.php, index.html, etc.
RewriteCond %{HTTP_HOST} ^(www.)?tibles.nl$
RewriteRule ^(/)?$ public/index.php?p=$1 [QSA,L]
# .htaccess main domain to subdirectory redirect
# Do not change this line.
RewriteEngine on
RewriteBase /
# Change example.com to be your main domain.
RewriteCond %{HTTP_HOST} ^(www.)?tibles.nl$
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/public/
# Don't change the following two lines.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteRule ^(.*)$ /public/$1
# Change example.com to be your main domain again.
# Change 'subdirectory' to be the directory you will use for your main domain
# followed by / then the main file for your site, index.php, index.html, etc.
RewriteCond %{HTTP_HOST} ^(www.)?tibles.nl$
RewriteRule ^(/)?$ public/index.php?p=$1 [QSA,L]
maar bij urls als www.tibles.nl/muziek dan krijg ik dit:
Not Found
The requested URL /public/muziek was not found on this server.
Toevoeging op 28/03/2015 17:58:44:
het is gelukt
RewriteRule ^(.*)$ /public/$1 moest hetzelfde als de onderste lijn zijn.
en ik snap het ook
Wat ik niet snap, waarom wil men altijd de REQUEST_URI in een querystring-variabele stoppen? Hiermee "reserveer" je (in dit geval) de querystring-variabele "p". Dat is helemaal niet nodig...
Waarom niet zo?
.htaccess
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
# pas dit aan naar het relatieve pad vanaf je document root
RewriteBase /
RewriteRule . index.php [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
# pas dit aan naar het relatieve pad vanaf je document root
RewriteBase /
RewriteRule . index.php [L,QSA]
index.php
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
$uriData = @parse_url($_SERVER['REQUEST_URI']);
$path = '';
if ($uriData !== false && isset($uriData['path'])) {
$path = $uriData['path'];
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
<h2>Aangeroepen URL</h2>
<p><?php echo $path ?></p>
<h2>Relatief pad</h2>
<p><?php echo trim(substr($uriData['path'], strlen(dirname($_SERVER['SCRIPT_NAME']))), '/') ?></p>
<h2>Querystring variabelen</h2>
<pre><?php echo print_r($_GET, true) ?></pre>
</body>
</html>
$uriData = @parse_url($_SERVER['REQUEST_URI']);
$path = '';
if ($uriData !== false && isset($uriData['path'])) {
$path = $uriData['path'];
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
<h2>Aangeroepen URL</h2>
<p><?php echo $path ?></p>
<h2>Relatief pad</h2>
<p><?php echo trim(substr($uriData['path'], strlen(dirname($_SERVER['SCRIPT_NAME']))), '/') ?></p>
<h2>Querystring variabelen</h2>
<pre><?php echo print_r($_GET, true) ?></pre>
</body>
</html>
Zet beide bestanden in dezelfde directory uiteraard...
Gewijzigd op 28/03/2015 18:35:07 door Thomas van den Heuvel
Dus /public/index.php