URL에서 'public / index.php'를 어떻게 제거 할 수 있습니까?
PHPURL에서 'public / index.php'를 어떻게 제거 할 수 있습니까?
기본적으로 나는 laravel에서 생성 된 URL에서 index.php 또는 public / index.php를 제거해야합니다. 일반적으로 localhost / public / index.php / someWordForRoute 경로는 localhost / someWordForRoute와 유사해야합니다.
htaccess
<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]
app / config / app.php
'url' => 'http://localhost',
내가 어떻게 바꿀 수 있니?
해결법
-
==============================
1.아직 없으면 Laravel 루트 디렉터리에 .htaccess 파일을 만듭니다. 이미 존재하지 않는 경우 .htaccess 파일을 Laravel 루트 디렉토리에 작성하십시오. (일반적으로 귀하의 public_html 폴더 아래에 있습니다)
아직 없으면 Laravel 루트 디렉터리에 .htaccess 파일을 만듭니다. 이미 존재하지 않는 경우 .htaccess 파일을 Laravel 루트 디렉토리에 작성하십시오. (일반적으로 귀하의 public_html 폴더 아래에 있습니다)
.htaccess 파일에 다음 코드가 포함되도록 편집하십시오.
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] </IfModule>
이제 "/ public / index.php /"부분없이 웹 사이트에 액세스 할 수 있어야합니다.
루트 디렉토리에 새 폴더를 만들고 공용 폴더를 제외한 모든 파일과 폴더를 이동합니다. 당신은 당신이 원하는 무엇이든 부를 수 있습니다. "laravel_code"를 사용하겠습니다.
다음으로 모든 것을 public 디렉토리에서 루트 폴더로 이동하십시오. 다음과 비슷한 결과가 나옵니다.
그 후에 laravel_code / bootstrap / paths.php 파일과 index.php 파일의 위치를 편집하면됩니다.
laravel_code / bootstrap / paths.php에서 다음 코드 행을 찾으십시오.
'app' => __DIR__.'/../app', 'public' => __DIR__.'/../public',
그리고 그 (것)들을에 바꾸십시오 :
'app' => __DIR__.'/../app', 'public' => __DIR__.'/../../',
index.php에서 다음 행을 찾으십시오.
require __DIR__.'/../bootstrap/autoload.php'; $app = require_once __DIR__.'/../bootstrap/start.php';
그리고 그 (것)들을에 바꾸십시오 :
require __DIR__.'/laravel_code/bootstrap/autoload.php'; $app = require_once __DIR__.'/laravel_code/bootstrap/start.php';
출처 : Laravel에서 / public / URL을 삭제하는 방법
-
==============================
2.Laravel 4.2에서이 작업을 시도했습니다.
Laravel 4.2에서이 작업을 시도했습니다.
Laravel 루트 폴더에있는 server.php의 이름을 index.php로 변경하고 .htaccess 파일을 / public 디렉토리에서 Laravel 루트 폴더로 복사하십시오.
나는 그것이 작동되기를 바란다.
-
==============================
3.URL은 공개 URL을 삭제하는 간단한 단계입니다 (Laravel 5).
URL은 공개 URL을 삭제하는 간단한 단계입니다 (Laravel 5).
1 : 공용 폴더의 모든 파일을 복사하여 laravel 루트 폴더에 붙여 넣습니다.
2 : index.php를 열고 변경하십시오.
에서
require __DIR__.'/../bootstrap/autoload.php';
에
require __DIR__.'/bootstrap/autoload.php';
과
$app = require_once __DIR__.'/../bootstrap/app.php';
에
$app = require_once __DIR__.'/bootstrap/app.php';
laravel 4 경로 2는 $ app = require_once __DIR __. '/ bootstrap / start.php'; 대신 $ app = require_once __DIR __. '/ bootstrap / app.php'; / app.php
그게 다야.
-
==============================
4.1) mod_rewrite가 활성화되어 있는지 확인하십시오. / etc / apache2 / mods-enabled 디렉토리로 가서 rewrite.load를 사용할 수 있는지 확인하십시오. 그렇지 않은 경우 sudo a2enmod rewrite 명령을 사용하여 활성화하십시오. 다시 쓰기 모듈이 활성화됩니다. 이미 활성화되어 있으면 모듈 다시 쓰기가 이미 활성화되었습니다.라는 메시지가 표시됩니다. 2) http : //localhost/public/index.php를 제공하는 대신 http://example.com/index.php와 같은 것을 사용할 수 있도록 공개 디렉토리 용 가상 호스트를 만듭니다. [따라서 공용 폴더 이름은 숨겨집니다] 3) 그런 다음 .htaccess 파일을 만들어 루트 디렉토리 (공용 폴더)에있는 url에서 index.php를 숨 깁니다.
1) mod_rewrite가 활성화되어 있는지 확인하십시오. / etc / apache2 / mods-enabled 디렉토리로 가서 rewrite.load를 사용할 수 있는지 확인하십시오. 그렇지 않은 경우 sudo a2enmod rewrite 명령을 사용하여 활성화하십시오. 다시 쓰기 모듈이 활성화됩니다. 이미 활성화되어 있으면 모듈 다시 쓰기가 이미 활성화되었습니다.라는 메시지가 표시됩니다. 2) http : //localhost/public/index.php를 제공하는 대신 http://example.com/index.php와 같은 것을 사용할 수 있도록 공개 디렉토리 용 가상 호스트를 만듭니다. [따라서 공용 폴더 이름은 숨겨집니다] 3) 그런 다음 .htaccess 파일을 만들어 루트 디렉토리 (공용 폴더)에있는 url에서 index.php를 숨 깁니다.
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?/$1 [L]
-
==============================
5.내가 사용하고있는 스 니펫을 다른 옵션과 혼동하지 말고 유용 할 것입니다. 루트에 아래 htacces를 넣으십시오.
내가 사용하고있는 스 니펫을 다른 옵션과 혼동하지 말고 유용 할 것입니다. 루트에 아래 htacces를 넣으십시오.
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </IfModule>
공개 디렉토리로 이동하여 아래 코드 스 니펫과 함께 다른 htaccess 파일을 넣으십시오.
<IfModule mod_rewrite.c> RewriteEngine On # Removes index.php from ExpressionEngine URLs RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 [PT,L] </IfModule>
그것의 작업 ... !!!
-
==============================
6.이것은 Laravel과 당신의 아파치 환경 설정과 관련이 거의 없다.
이것은 Laravel과 당신의 아파치 환경 설정과 관련이 거의 없다.
Apache 서버 설정에 액세스 할 수 있습니까? 그렇다면 문서에서 확인하십시오.
내가 이것을 먼저 언급하는 이유는 가능한 경우 .htaccess를 완전히 없애고 VirtualHost 태그 내부에 Directory 태그를 사용하는 것이 가장 좋습니다. 즉, 나머지는 당신이 어떤 이유로 든 .htaccess 경로를 고수하고 있다고 가정합니다.
이 문제를 해결하려면 몇 가지 일이 발생할 수 있습니다.
희망이 도움이됩니다. 가장 일반적인 문제의 이름을 지정했지만 좀 더 평범하거나 고유 할 수있는 몇 가지 다른 문제가 있습니다. dev에 서버에 대한 또 다른 제안? Apache를 다시 설치하십시오. 가능한 경우, 좋은 자습서로 다른 소스에서 그렇게하십시오.
-
==============================
7.Laravel은 예쁜 URL로 배송합니다 .htaccess는 이미 ... 상자에서 나오려면 좋을 것입니다 ... http://laravel.com/docs/installation#pretty-urls
Laravel은 예쁜 URL로 배송합니다 .htaccess는 이미 ... 상자에서 나오려면 좋을 것입니다 ... http://laravel.com/docs/installation#pretty-urls
mod_rewrite가 활성화되어 있고 홈 경로가 응용 프로그램의 공용 디렉토리로 설정되어 있는지 확인하십시오.
-
==============================
8.Laravel 4 & 5의 경우 :
Laravel 4 & 5의 경우 :
그게 전부 야 !! :)
-
==============================
9.
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
.htaccess에서 이것을 사용하고 서버를 다시 시작하십시오.
-
==============================
10.그것이 나를 위해했던 것처럼 이것이 도움이되기를 바랍니다.
그것이 나를 위해했던 것처럼 이것이 도움이되기를 바랍니다.
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} !^public RewriteRule ^(.*)$ public/$1 [L] </IfModule>
-
==============================
11.Laravel 루트 폴더에있는 server.php의 이름을 index.php로 변경하고 .htaccess 파일을 / public 디렉토리에서 Laravel 루트 폴더로 복사하십시오. - 그게 전부 야 !! :)
Laravel 루트 폴더에있는 server.php의 이름을 index.php로 변경하고 .htaccess 파일을 / public 디렉토리에서 Laravel 루트 폴더로 복사하십시오. - 그게 전부 야 !! :)
-
==============================
12.방금 프로젝트에 Laravel 5를 설치했고 server.php라는 루트에 파일이 있습니다.
방금 프로젝트에 Laravel 5를 설치했고 server.php라는 루트에 파일이 있습니다.
그것을 index.php로 변경하면 작동하거나 터미널에 입력합니다 :
$cp server.php index.php
-
==============================
13.
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)/(public)/(index.php)/$ $1/$4 [L] </IfModule>
-
==============================
14.Laravel 5.3에 따라 위의 것들이 제대로 작동하지 않을 것이지만 침착하게 아래 단계를 따르십시오.
Laravel 5.3에 따라 위의 것들이 제대로 작동하지 않을 것이지만 침착하게 아래 단계를 따르십시오.
1 단계. laravel 프로젝트 내부로 이동합니다. 2 단계. 하나의 임의의 디렉토리 / 폴더를 만듭니다. 라라벨 코드 3 단계. 모든 폴더 및 파일 이동 (공용 폴더 제외) 4 단계. 공용 폴더 안에있는 모든 폴더 및 파일을 laravel 프로젝트로 이동합니다. 5 단계. 이제 laravel 프로젝트 안에 index.php 파일이 있습니다. 이전에 "DIR. require / / bootstrap / autoload.php '와 같이 새 경로마다 부트 스트랩의 폴더 경로를 변경하고 엽니 다." 이제 "DIR이 필요합니다."/ laravelcode / bootstrap / autoload.php '; "
그게 아래처럼 public과 index.php없이 url을 실행 한 것입니다. http : // localhost / blog /
from https://stackoverflow.com/questions/23837933/how-can-i-remove-public-index-php-in-the-url-generated-laravel by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
.htaccess를 사용하여 디렉토리 (모든 하위 디렉토리 포함)에서 PHP를 비활성화합니다. (0) | 2018.09.19 |
---|---|
cURL을 사용하여 HTTPS 사이트에 연결할 수 없습니다. 0 길이의 콘텐츠를 대신 반환합니다. 내가 무엇을 할 수 있을지? (0) | 2018.09.19 |
참조에 의한 PHP Foreach Pass : 마지막 요소 복제? (곤충?) (0) | 2018.09.19 |
SUDO가 필요한 PHP에서 쉘 스크립트를 호출하는 방법은 무엇입니까? (0) | 2018.09.19 |
MySQL, MySQLi 및 PDO의 차이점은 무엇입니까? [닫은] (0) | 2018.09.19 |