htaccess voor Laravel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Reshad F

Reshad F

22/11/2013 19:40:12
Quote Anchor link
Hello

Ik zit een beetje te spelen met de htaccess van laravel en ik krijg het maar niet voor elkaar om van pagina te wisselen zonder index.php ( clean url ) in mijn url te hebben.

Wanneer ik index.php erin heb staan dan kom ik natuurlijk wel op de juiste pagina. Mijn htaccess op dit moment ziet er als volgt uit.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<IfModule mod_rewrite.c>
Options +FollowSymLinks
    Options -MultiViews
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>


Iemand ervaring hiermee en een oplossing?
 
PHP hulp

PHP hulp

24/01/2020 18:02:06
 
Mebus  Hackintosh

Mebus Hackintosh

22/11/2013 19:56:01
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|javascript|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]


Misschien werkt dit? Zo doe ik het met Codeigniter :) En heb je AllowOverride op All staan?

Op deze manier kan ik van deze link: http://localhost/index.php/register/ http://localhost/register/ maken
Gewijzigd op 22/11/2013 19:57:16 door Mebus Hackintosh
 
Dos Moonen

Dos Moonen

22/11/2013 19:56:52
Quote Anchor link
Probeer dit eens als RewriteRule:
RewriteRule .* index.php/$0 [PT]
 
Reshad F

Reshad F

22/11/2013 19:58:02
Quote Anchor link
nope werkt niet en ja het staat wel aan.
 
Mebus  Hackintosh

Mebus Hackintosh

22/11/2013 20:00:47
Quote Anchor link
Heb je toevallig een vps of een linux systeem? Ik kreeg mod_rewrite namelijk ook niet werkende en moest blijkbaar AllowOverride in de volgende map: /etc/apache2/sites-enabled aanpassen.

Trouwens ook al een gewoon .htaccess bestand geprobeerd?

Het bestand dat ik moest aanpassen heet '000-default.conf' in de map /etc/apache2/sites-enabled

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<Directory /var/www/>
        AllowOverride All
</Directory>
Gewijzigd op 22/11/2013 20:04:08 door Mebus Hackintosh
 
Reshad F

Reshad F

22/11/2013 20:07:07
Quote Anchor link
@Dos moonen ik krijg nu wel

/public/index.php/user/create was not found on this server. en in de url natuurlijk zonder de index.php erin maar wanneer ik de index.php er in zet lukt het wel nog altijd. zowel met jou tip als deze RewriteRule ^(.*)$ index.php/$1 [L]

Toevoeging op 22/11/2013 20:07:42:

Ik werk nu lokaal op mijn iMac.
 
Mebus  Hackintosh

Mebus Hackintosh

22/11/2013 20:09:28
Quote Anchor link
Met MAMP? Ik had geen problemen en kon direct .htaccess files gebruiken bij mij op OS X ML
 
Reshad F

Reshad F

22/11/2013 20:19:05
Quote Anchor link
Nee ik gebruik geen MAMP maar de homebrew variant
 
Mebus  Hackintosh

Mebus Hackintosh

22/11/2013 20:22:11
Quote Anchor link
Hoe staat je root folder ingesteld in het volgende bestand: httpd.conf
 
Dos Moonen

Dos Moonen

22/11/2013 22:25:21
Quote Anchor link
http://laravel.com/docs/installation#pretty-urls al geprobeerd?

PS. Homebrew FTW!

Edit: woops. dacht dat er in je openings post iets anders stond...
De orginele werkt dus ook niet?

Geef eens een voorbeeld van de url. (in de vorm http://blabla/miauw)
Gewijzigd op 22/11/2013 22:28:58 door Dos Moonen
 
Reshad F

Reshad F

23/11/2013 00:36:12
Quote Anchor link
Wat ik nu krijg ( als ik op een link klik )

http://localhost/~gebruikersnaam/laravelfolder/public/user/create

En dit resulteert in een 404 met de volgende melding
The requested URL /Users/username/Sites/laravelfolder/public/index.php/user/create was not found on this server.

wat wel werkt

http://localhost/~gebruikersnaam/laravelfolder/public/index.php/user/create

Maar dat moet dus zonder.
 
Local Dev

Local Dev

23/11/2013 00:49:33
Quote Anchor link
hoe ziet jouw virtual host voor apache eruit?
 
Reshad F

Reshad F

23/11/2013 12:27:14
Quote Anchor link
Ik heb geen virtual host ik maak enkel gebruik van de httpd.conf file van apache. Deze ziet er als volgt uit bij mij

http://pastebin.com/7w4tqT6N
 
Bart V B

Bart V B

23/11/2013 12:37:18
Quote Anchor link
Je gebruikt zo te zien userdir.
Misschien niet meteen de oplossing voor je probleem, maar ikzelf had helemaal geen zin meer om die dingen te scheiden als ik aan het developen ben.

Dus wat doe ik tegenwoordig:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
php artisan serve


Dan kan je met http://localhost:8000/ gewoon developen zonder al die rare fratsen waar je je nu nog niet druk over hoeft te maken. ;)
 
Dos Moonen

Dos Moonen

23/11/2013 15:14:34
Quote Anchor link
http://localhost/~gebruikersnaam/laravelfolder/public/index.php/user/create werkt.
index.php zit dus in de map /~gebruikersnaam/laravelfolder/public/

RewriteBase /~gebruikersnaam/laravelfolder/public/ zal dus nodig zijn.
of
RewriteRule ^ /~gebruikersnaam/laravelfolder/public/index.php [L]

Of je kan user dirs uit zetten, virtual hosts aan zetten en correct instellen:

Uncomment de Include regel onder "# Virtual hosts".

Mijn /private/etc/apache2/extra/httpd-vhosts.conf ziet er zo uit:
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
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

include /Private/etc/apache2/virtual-hosts/*.conf


Vervolgens maak ik de map /Private/etc/apache2/virtual-hosts/ aan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
sudo mkdir /etc/apache2/virtual-hosts


Als laatste heb ik dan een bestand in /Private/etc/apache2/virtual-hosts/ dat er zo uit ziet:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
    ServerAdmin darsstar@example.com
    DocumentRoot "/Volumes/DATA/Sites/example.dev/htdocs/public"
    ServerName example.dev
    ServerAlias www.example.dev
    ErrorLog "/private/var/log/apache2/example.dev-error_log"
    CustomLog "/private/var/log/apache2/example.dev-access_log" common

    <Directory "/Volumes/DATA/Sites/example.dev/htdocs/public">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Pas aan wat je aan wilt passen.

Als laatste passen we je hosts file aan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
sudo nano /etc/hosts


Voeg de volgende regel toe
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
127.0.0.1 example.com www.example.com

ctrl + x, bevestig de wijziging door op 'y' te drukken en vervolgens op enter om de bestandsnaam te bevestigen.

Herstart apache:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
sudo apachectl restart


Dan zou je naar example.com kunnen gaan en hoort apache je iets voor te schotelen. Wat hangt er vanaf welke map je hebt opgegeven in de virtual host.

PS. /Volumes/DATA is een NTFS partitie die ik zelf heb aangemaakt. Ik dualboot windows met bootcamp. Windows' apache kijkt naar de zelfde map. Werkt wel fijn :p
Gewijzigd op 23/11/2013 15:19:26 door Dos Moonen
 
Reshad F

Reshad F

23/11/2013 16:24:09
Quote Anchor link
Maar die rewrite doe ik nu ook al.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<IfModule mod_rewrite.c>
Options +FollowSymLinks
    Options -MultiViews
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>


En ik wil geen vhost instellen
 
Dos Moonen

Dos Moonen

23/11/2013 16:50:55
Quote Anchor link
...

"ik wil geen vhost instellen"
Ok, ik snap niet waarom maar goed, dan blijven er dus twee optie over.

"Maar die rewrite doe ik nu ook al."
Echt?
Ik zie volgens mij toch echt /~gebruikersnaam/laravelfolder/public/ in dat voorbeel van je.

Het zal een van deze twee moeten worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<IfModule mod_rewrite.c>
Options +FollowSymLinks
    Options -MultiViews
    RewriteEngine On

    RewriteBase /~gebruikersnaam/laravelfolder/public/

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<IfModule mod_rewrite.c>
Options +FollowSymLinks
    Options -MultiViews
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /~gebruikersnaam/laravelfolder/public/index.php/$1 [L]
</IfModule>
 
Reshad F

Reshad F

24/11/2013 22:58:52
Quote Anchor link
Haa die eerste werkt :) sorry ik volgde het even niet helemaal.

Thanks!
 



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.