programing

생성된 URL의 "public/index.php"를 삭제하려면 어떻게 해야 합니까?

bestcode 2022. 11. 27. 11:35
반응형

생성된 URL의 "public/index.php"를 삭제하려면 어떻게 해야 합니까?

삭 i i i i i i i i 。index.php ★★★★★★★★★★★★★★★★★」public/index.phpLarabel 입니다.일반적으로 경로는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.module

'url' => 'http://localhost',

어떻게 하면 바꿀 수 있을까요?

옵션 1: .htaccess 사용

Larabel.htaccess. 작성하다.htaccess하지 않는 파일을 은 Laravel 루트 디렉토리가 Laravel 아래에 .)public_html□□□□□□□□★

.htaccess 파일에 다음 코드가 포함되도록 편집합니다.

<IfModule mod_rewrite.c>
   RewriteEngine On 
   RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

이제 "/public/index.php/" 부분 없이 웹 사이트에 액세스할 수 있습니다.

옵션 2: '/public' 디렉터리의 항목을 루트 디렉터리로 이동합니다.

루트 디렉토리에 새 폴더를 만들고 공용 폴더를 제외한 모든 파일과 폴더를 이동합니다.네가 원하는 대로 불러도 돼laravel_code를 사용합니다.

그런 다음 모든 항목을 공용 디렉토리에서 루트 폴더로 이동합니다.되면 '하다, 하다, 하다'와 가 나올 거예요.여기에 이미지 설명 입력

다음, 우리가 할 은 '아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, .laravel_code/bootstrap/paths.php 및 「」를 참조해 주세요.index.phpfilename을 클릭합니다.

»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';

출처 : Larabel URL에서 /public/을 삭제하는 방법

이거 라라벨 4.2에서 해봤는데

.server.php에서 Laravel로 이동합니다.index.php해 주세요..htaccess/public라라벨

잘 됐으면 좋겠다

아래 스니펫을 사용하고 있는 다른 옵션과 혼동하지 마시고, 고객님께도 도움이 될 것입니다.아래 htaces를 뿌리에 넣으세요.

<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>

되고 있어...!!!

Laravel 아래 .htaccess 사용

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

되어 있는지 합니다.1) mod_rewrite는 활성화 되어 있는지 합니다.★★★★★★★★★★★★★★★로 이동/etc/apache2/mods-enabled를 참조해 .rewrite.load사용할 수 있습니다.않은 는, 「」를 .sudo a2enmod rewrite모듈을 하다유효하게 되어 있는 는, 됩니다.Module rewrite already enabled.
하여 2)를 주는 가상 호스트를 .http://localhost/public/index.php 쓸 수 http://example.com/index.php[어디서나]
3) 디렉토리 폴더3) index.php의 URL ..

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

다음은 공개 URL(Larabel 5)을 삭제하는 간단한 단계입니다.

1: 퍼블릭 폴더에서 모든 파일을 복사하여 라라벨 루트 폴더에 붙여넣습니다.

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';

는 '4' '2'입니다.$app = require_once __DIR__.'/bootstrap/start.php';$app = require_once __DIR__.'/bootstrap/app.php';/app.php

바로 그거야.

Larabel 4 및 5의 경우:

  1. " " " " "server.php에서 Laravel로 이동합니다.index.php
  2. .htaccess/public디렉토리를 Larabel 루트 폴더에 추가합니다.

그거야!! :)

이는 Laravel 및 Apache 구성과는 거의 관련이 없습니다.

Apache 서버 구성에 액세스할 수 있습니까?이 경우 다음 문서를 참조하십시오.

일반적으로 주 서버 구성 파일에 액세스할 수 없는 경우에만 .htaccess 파일을 사용해야 합니다.예를 들어 사용자 인증은 항상 .htaccess 파일로 해야 한다는 일반적인 오해가 있습니다.또 최근에는 mod_rewrite 디렉티브가 .htaccess 파일에 들어가야 한다는 오해가 있습니다.이것은 단순히 사실이 아니다.메인 서버 설정에 사용자 인증 설정을 추가할 수 있습니다.실제로 이것은 권장되는 방법입니다.마찬가지로 mod_rewrite 디렉티브는 메인 서버 설정에서 여러 면에서 더 잘 작동합니다.

...일반적으로 가능하면 .htaccess 파일의 사용은 피해야 합니다..htaccess 파일에 넣는 것을 검토하는 설정은 메인서버 컨피규레이션파일 섹션에서도 유효하게 할 수 있습니다.

출처: Apache 문서.

가 이걸 는 이 문제를 입니다..htaccess 수 , 할 수 있다면, 완전히Directory를 달다VirtualHost은 '', '태그', '태그', '태그', '태그', '태그', '태그 '태그', '태그', '태그', '태그', '태그', '태그', '태그', '태그', '태그', '태그', '태그', '태그', '태그', '를 붙입니다..htaccess어떤 이유로든 루트를 이용합니다.

이를 해결하기 위해 다음과 같은 몇 가지 일이 발생할 수 있습니다.

  1. 은 아마하게 「」라고 되어 것을 알 수 있습니다..htacces질문해 주세요.제 추측으로는 오타인데 혹시 모르니까 두 번째 s를 놓쳤을 수도 있습니다.이것이 바로 제가 좀 더 도전적인 것을 찾기 위해 머리를 벽에 부딪치게 하는 사소한 실수입니다.

  2. 가 버음음음음음음음음음음음음 your your your your your your your your your를 허용하지 않았습니다..htaccess이를 확인하려면 Apache 구성 파일로 이동하십시오.최신 Apache 빌드에서는 일반적으로 하나의 구성 파일에 포함되지 않으므로 앱이 존재하는 곳과 상관없이 해당 앱을 사용해야 합니다.바꾸다

    AllowOverride none
    

    로.

    AllowOverride all
    

    로 Apache를 사용할 경우 이 작업을 .htaccess이렇게 하다 대신 필요..htaccessdiscloss.to.discloss.

  3. ★★★가 있습니까?mod_rewrite효하하 ?어 ?? ????을 사용법 것을 알 수 .<IfModule mod_rewrite.c>해 보십시오. 아파치는, 「이네이블」, 「이네이블」, 「이네이블」을 입니다.mod_rewrite: Apache 2.2에서 mod_rewrite를 활성화하는 방법

이게 도움이 됐으면 좋겠다.나는 가장 흔한 문제들 중 몇 가지를 언급했지만 더 평범하거나 독특할 수 있는 다른 문제들이 몇 가지 있다.개발 서버에 대한 다른 제안이 있습니까?Apache를 다시 설치합니다.가능한 경우, 적절한 튜토리얼이 있는 다른 소스에서 이 작업을 수행합니다.

또한 .htaccess 파일을 편집한 후 Engline 다시 쓰기가 켜져 있는지 확인하십시오.

sudo a2enmod rewrite

Laravel은 이미 예쁜 URL .htaccess로 배송되고 있습니다.상자 밖으로 나가는 게 좋을 거야http://laravel.com/docs/installation#pretty-urls

mod_rewrite가 활성화되어 있는지, 홈 경로가 응용 프로그램의 공용 디렉토리로 설정되어 있는지 확인합니다.

이를 수행하려면 다음과 같은 단계를 수행해야 합니다.

  • 도메인을 프로젝트의 공용 폴더(예: /var/www/html/your project/public)에 매핑합니다(Linux를 사용하는 경우).

  • .htaccess에 철하다

AddHandler application/x-httpd-php72 .php
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect non-www to www
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    # Redirect non-http to https
    RewriteCond %{HTTPS} off
    RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Remove index.php
    RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
    RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]
</IfModule>


  • 은 '3'이 없는 입니다.https그걸 지켜주죠

부디 참고하세요

Docker와 함께 Laravel 프로젝트를 수행할 때: 이 작업을 수행할 필요가 없습니다.이 옵션은 웹 사이트의 루트(또는 일반적으로 public_html) 디렉토리가 Laravel 프로젝트인 경우에만 사용하십시오(Docker를 사용하는 경우에는 해당되지 않습니다).

하지마!

서버의 이름을 바꾸면 안 됩니다.larabel 루트 폴더에 있는 php를 index.php로 전송하고 /public 디렉토리에서 Larabel 루트 폴더로 .htaccess 파일을 복사합니다.

이렇게 하면 모든 사용자가 파일(.env 등)에 액세스할 수 있습니다.직접 해보세요.넌 그걸 원하지 않아!

하다

대신 다음과 같이 루트에 .htaccess 파일을 생성해야 합니다.

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]

그러면 모든 기본 URI가 /public 폴더에 자동으로 다시 작성됩니다.HTTP Authorization Header 등의 모든 헤더와 옵션의 모든 URI 파라미터도 /public 폴더에 사일런트하게 됩니다.

이상입니다

 RewriteEngine on

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d

 RewriteRule ^(.*)$ index.php/$1 [L]

.htaccess에서 사용하고 서버를 재시작합니다.

이게 나한테 도움이 됐으면 좋겠어.

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

에 Larabel 5라는 .server.php

로로 change change .index.php작동하거나 터미널에 입력합니다.

$cp server.php index.php

.server.php에서 Laravel로 이동합니다.index.php해 주세요..htaccess/public라라벨

를 는, IIS 를 추가합니다.web.config합니다. root 더 、 더 、 file 、 file 、 음 、 file 、 file file : file file 。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 1" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{URL}" pattern="^system.*" ignoreCase="false" />
                    </conditions>
                    <action type="Rewrite" url="/index.php/{R:1}" />
                </rule>
                <rule name="Imported Rule 2" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                        <add input="{R:1}" pattern="^(index\.php|images|robots\.txt|css)" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

'아예'를 .htaccess다음 명령어를 사용합니다.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)/(public)/(index.php)/$ $1/$4 [L]
</IfModule>

언급URL : https://stackoverflow.com/questions/23837933/how-can-i-remove-public-index-php-in-the-url-generated-laravel

반응형