framework klaar maar htaccess doet t niet goed

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Francoi gckx

Francoi gckx

28/03/2015 16:57:24
Quote Anchor link
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
 
PHP hulp

PHP hulp

23/11/2024 09:55:55
 
Thomas van den Heuvel

Thomas van den Heuvel

28/03/2015 17:03:09
Quote Anchor link
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?
 
Francoi gckx

Francoi gckx

28/03/2015 17:37:03
Quote Anchor link
ja zo lukt het wel even kijken of het toch nog met public kan want zo was het orgineel ook
 
Thomas van den Heuvel

Thomas van den Heuvel

28/03/2015 17:40:40
Quote Anchor link
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.
 
Francoi gckx

Francoi gckx

28/03/2015 17:41:05
Quote Anchor link
ok ik heb nu geen htaccess in de root (public_html)
maar in de subfolder public

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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]


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)
PHP script in nieuw venster Selecteer het PHP script
1
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]



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
 
Thomas van den Heuvel

Thomas van den Heuvel

28/03/2015 18:03:16
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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]

index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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...
Gewijzigd op 28/03/2015 18:35:07 door Thomas van den Heuvel
 
Ivo P

Ivo P

29/03/2015 22:47:52
Quote Anchor link
En begin in de rewriterule het target path met een /

Dus /public/index.php
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.