網頁

2015年8月1日 星期六

設定好router卻無法直接在url上直接使用

安裝好Laravel後,在看router這篇時,寫成底下這樣
Route::get('lava', function () {
    return 'Hello World';
});

卻發現無法直接使用http://localhost/~alvin/lara/lava,而要用http://localhost/~alvin/lara/index.php/lava,多了index.php實在很奇怪。雖然認為問題出在.htaccess,但一直不知道是什麼問題,看了這篇.htaccess rewriterule not working correct on mac才想到因為Mac上我是直接使用user下的Sites,所以應該要做RewriteBase的設定才是,如下設定
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On
    RewriteBase /~alvin/lara #新增這行

    # 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]
</IfModule>

這樣就可以正常使用了

參考網址:
How can I remove “public/index.php” in the url generated laravel?
.htaccess rewriterule not working correct on mac

沒有留言:

張貼留言