Setup
Tôi cố gắng để cài đặt một ứng dụng laravel 5 trong thư mục này trên máy chủ của tôi:Install Laravel 5 ứng dụng trong thư mục con với htaccess
public_html/myapp/
Và tôi muốn nó được truy cập tại URL này:
http://www.example.com/myapp/
tôi đã tạo ra quy tắc .htaccess này và đặt nó trong myapp
thư mục để chuyển các yêu cầu:
RewriteEngine on
RewriteRule ^(.*)$ public/$1 [L]
Vấn đề:
Trong trình duyệt của tôi khi tôi cố gắng truy cập vào các ứng dụng tôi bị chuyển hướng các URL như:
http://www.example.com/myapp/public/index.php
http://www.example.com/myapp/public/index.php/dashboard
thay vì đẹp U đẹp RLS như:
http://www.example.com/myapp/
http://www.example.com/myapp/dashboard
gì tôi cần phải thay đổi trong tập tin .htaccess của tôi để có được URL thích hợp làm việc?
Cập nhật: Ứng dụng Laravel có thể được chuyển đến nơi khác nếu cần, miễn là có thể đạt được cấu trúc URL mong muốn ở trên (với ứng dụng có thể truy cập tại example.com/myapp/).
Cập nhật: Khi tôi cố gắng truy cập vào example.com/myapp/dashboard
Tôi nhận được thông báo lỗi sau đây trong trình duyệt: NotFoundHttpException in compiled.php line 7793:
với một vết đống mà bắt đầu với:
in compiled.php line 7793
at RouteCollection->match(object(Request)) in compiled.php line 7066
at Router->findRoute(object(Request)) in compiled.php line 7038
at Router->dispatchToRoute(object(Request)) in compiled.php line 7030
at Router->dispatch(object(Request)) in compiled.php line 1989
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
Cập nhật: Các tập tin .htaccess sau nằm ở nơi công cộng thư mục:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule^index.php [L]
</IfModule>
Bạn có tệp htaccess trong thư mục công cộng không? –
Không cài đặt ứng dụng trong public_html làm cho tất cả các tệp Laravel của bạn có thể truy cập được với mọi người không? – Mahozi
Hmm, có thể. Nếu tôi cài đặt bên ngoài public_html, làm thế nào tôi sẽ trỏ đến nó bằng .htaccess? (Sẽ chấp nhận rằng như là một câu trả lời hợp lệ quá miễn là nó đạt được cấu trúc URL tôi hy vọng cho) –