我用PHP创建了一个带有Laravel框架的应用程序。
我遇到路由问题。
.htaccess文件如下所示:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
routes.php文件:
<?php
get('/', function () {
return view('welcome');
});
get('1', function() { return 'Je suis la page 1 !'; });
get('2', function() { return 'Je suis la page 2 !'; });
当我加载http://localhost:63342/game/public/时,服务器会加载welcome.blade.php文件,所以它就是okey。但是当我想加载http://localhost:63342/game/public/1时,我收到错误:404 Not Found。 我使用了appache服务器,我已经启用了&#39; mod_rewrite&#39;行动。 有什么问题?
答案 0 :(得分:0)
我猜你的laravel应用程序可能在子目录中。您的重写规则应该反映出来。我不太确定你的RewriteRule应该如何改变但它应该是这样的......
RewriteRule ^game/public/(.*)/$ /game/public/$1 [L,R=301]
这不是一个真正的答案......但是要尝试一下。
希望有所帮助。
答案 1 :(得分:0)
我找到了解决方案。 我在httpd.conf中为apache服务器启用了mod_rewrite操作,但问题是,我没有为我的项目在此文件中设置正确的目录路径。
应该看起来像这样:
DocumentRoot "/Applications/MAMP/htdocs"
<Directory "/Applications/MAMP/htdocs" >
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
希望,它将来有助于某人。