1. Rozumiem, dlaczego starasz się zmienić .htaccess, ale to można rozwiązać wiele prostsze. Przywrócić plik .htaccess z powrotem do laravel standardowej
<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]
</IfModule>
2. Przenieś wszystkie foldery i pliki oprócz publicznego i upewnij się, że są za folderze HTML.
3. Przenieś wszystkich folderów publicznych oraz pliki z folderu publicznego do folderu html
4. Tell laravel szukać w folderze html zamiast społeczeństwa poprzez zmianę serwera. php plik
<?php
/**
* Laravel - A PHP Framework For Web Artisans
*
* @package Laravel
* @author Taylor Otwell <[email protected]>
*/
$uri = urldecode(
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
);
// This file allows us to emulate Apache's "mod_rewrite" functionality from the
// built-in PHP web server. This provides a convenient way to test a Laravel
// application without having installed a "real" web server software here.
if ($uri !== '/' && file_exists(__DIR__.'/html'.$uri)) {
return false;
}
require_once __DIR__.'/html/index.php';
Uważam to rozwiązanie dużo prostsze niż bawić się z tobą htaccess. Zapewniasz również, że nie można uzyskać dostępu do wszystkich podstawowych plików Laravel z adresu URL.
Inny problem masz (strony wewnętrzne)
Jest to prawdopodobnie ze względu na swój apache nie pozwalając nadpisanie z Laravels htaccess
Przejdź do wiersza poleceń serwera i dostęp do apache2.conf złożyć
cd /etc/apache2
Otwórz plik apache2.conf z nano
sudo nano apache2.conf
Teraz zlokalizuj następujący
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
zmienić na
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Writeout zmiany i wyjść nano.
restart apache
sudo service apache2 restart
Powinno teraz działać :)
hi jest chcesz usunąć tworzą/public swoją stronę ...? –
Cześć, popraw mnie, jeśli jestem zły. Chcesz, aby wszystkie adresy URL były wyświetlane w witrynie example.com zamiast w witrynie www.example.com. a wszystkie adresy URL inne niż kończące się na /index.php zostaną przekierowane na example.com? – TheChetan