ik heb een root 'public_html' hier staat de framework in, ik wil het zo hebben dat.

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
Waarom plaats je je .htaccess file en je index.php file niet in dezelfde directory? Dan is je document root ook je (relatieve) "root" directory.

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
Misschien moet je ook een RewriteBase instellen en zorgen dat bestaande bestanden en directories niet "herschreven" worden anders kom je misschien in een soort van loop terecht.

En nog handiger zou een concreet voorbeeld zijn.
ok ik heb nu geen htaccess in de root (public_html)
maar in de subfolder public


RewriteEngine On

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?

[size=xsmall]Toevoeging op 28/03/2015 17:41:49:[/size]

alles werkt maar wel heel de tijd met public in de url

[size=xsmall]Toevoeging op 28/03/2015 17:42:13:[/size]

dus hoe dit


[size=xsmall]Toevoeging op 28/03/2015 17:44:44:[/size]

dankjewel


[size=xsmall]Toevoeging op 28/03/2015 17:54:35:[/size]

update


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] 



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.

[size=xsmall]Toevoeging op 28/03/2015 17:58:44:[/size]

het is gelukt

RewriteRule ^(.*)$ /public/$1 moest hetzelfde als de onderste lijn zijn.

en ik snap het ook
Meh.

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
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]

index.php
<?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>

Zet beide bestanden in dezelfde directory uiteraard...
En begin in de rewriterule het target path met een /

Dus /public/index.php

Reageren