복붙노트

웹 사이트 주소에서 파일 확장명을 제거하는 방법은 무엇입니까?

PHP

웹 사이트 주소에서 파일 확장명을 제거하는 방법은 무엇입니까?

나는 웹 사이트를 디자인하고있다. 내 웹 사이트 주소가 다음 이미지처럼 보이길 원합니다.

내 웹 사이트가 http://something.com/profile.php처럼 보이기를 원하지 않습니다. 누군가가 내 웹 사이트를 열 때 주소 표시 줄에서 .php 확장자를 제거하고 싶습니다. 다른 말로하면 나는 내 웹 사이트를 http://something.com/profile처럼 보이기를 원한다.

두 번째 예로서 StackOverflow 웹 사이트 주소 자체를 볼 수 있습니다.

이 일을 처리하는 데 누군가 나를 도울 수 있습니까? 감사!

해결법

  1. ==============================

    1..htaccess 파일을 다음 내용이 포함 된 사이트의 루트 폴더 (예 : /home/domains/domain.com/htdocs/)에 추가하기 만하면됩니다.

    .htaccess 파일을 다음 내용이 포함 된 사이트의 루트 폴더 (예 : /home/domains/domain.com/htdocs/)에 추가하기 만하면됩니다.

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php
    
  2. ==============================

    2.먼저, mod_rewrite 모듈이 설치되어 있는지 확인하십시오. 그런 다음 그것이 어떻게 작동하는지 이해하는 것을 조심하십시오, 많은 사람들이 그것을 뒤로 가져옵니다.

    먼저, mod_rewrite 모듈이 설치되어 있는지 확인하십시오. 그런 다음 그것이 어떻게 작동하는지 이해하는 것을 조심하십시오, 많은 사람들이 그것을 뒤로 가져옵니다.

    당신은 URL이나 확장 기능을 숨기지 않습니다. 당신이하는 일은 예전처럼 예전처럼 새로운 URL을 만드는 것입니다.

    웹 사이트에 올릴 URL은 yoursite.com/play?m=asdf입니다.

    또는 더 나은 아직

    yoursite.com/asdf

    비록 디렉토리 asdf가 존재하지 않습니다. mod_rewrite를 설치하면 .htaccess 파일에이 파일을 넣을 수 있습니다. 기본적으로 요청한 URL이 파일이 아니고 디렉토리가 아닌 경우 내 스크립트로 직접 보냅니다.

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

    거의 완료되었습니다. 이제 새로운 URL을 파싱하려면 PHP 스크립트에 내용을 써야합니다. 당신은 오래된 것들도 역시 그렇게하기를 원합니다. 당신이하는 일은 변수가 항상 정확히 같은 시스템을 유지하거나 "SEO 친화적 인 URL"과 제품 ID를 연관시키는 데이터베이스 테이블을 생성하는 것입니다. 보기는일지도 모르다

    / Some-Cool-Video (제품 ID와 동일 함)

    이것에 대한 이점? 검색 엔진은 "일부 멋진 동영상"이라는 키워드를 색인 생성합니다. asdf? 누가 그것을 찾을 것입니까?

    이걸 프로그래밍하는 방법에 대해 자세히 설명 할 수는 없지만 질의 문자열을 가져 와서 끝에서 제거하십시오.

    yoursite.com/Some-Cool-Video 
    

    "asdf"로 바뀝니다.

    그런 다음 m 변수를 this로 설정하십시오.

    m = asdf

    따라서 두 URL은 모두 동일한 제품으로 이동하게됩니다.

    yoursite.com/play.php?m=asdf 
    yoursite.com/Some-Cool-Video 
    

    mod_rewrite는 다른 중요한 것들도 많이 처리 할 수 ​​있습니다. Google은 그것을 서버로 활성화합니다 (이미 설치되었을 것입니다).

    참조 : http://www.scriptscoop2.com/t/1a0c2b81484d/php-how-to-remove-file-extension-from-website-address.html

  3. ==============================

    3.당신에게는 다른 선택이 있습니다. 하나는 "profile"이라는 폴더를 만들고 "profile.php"의 이름을 "default.php"로 바꾸고 "profile"폴더에 넣는 것입니다. 이런 방식으로이 페이지에 명령을 내릴 수 있습니다.

    당신에게는 다른 선택이 있습니다. 하나는 "profile"이라는 폴더를 만들고 "profile.php"의 이름을 "default.php"로 바꾸고 "profile"폴더에 넣는 것입니다. 이런 방식으로이 페이지에 명령을 내릴 수 있습니다.

    이전 페이지 : http://something.com/profile.php?id=a&abc=1

    새 페이지 : http://something.com/profile/?id=a&abc=1

    만족스럽지 않으면 복잡한 방법에 대한 의견을 남기십시오.

  4. ==============================

    4.디렉토리를 만들고 index.php를 유지하는 문제는

    디렉토리를 만들고 index.php를 유지하는 문제는

    솔루션은 다음과 같습니다. 1. MOD REWRITE (위에 제안 된대로) 2. PHP 코드를 사용하여 다른 파일을 색인 파일에 동적으로 포함시킵니다. 여기에 조금 더 읽어보십시오 http://inobscuro.com/tutorials/read/16/

  5. ==============================

    5.다음은 내가 사용하는 간단한 PHP 방법입니다. .php 확장자로 페이지가 요청되면 .php 확장자없이 새로운 요청이 생성됩니다. .php 확장자는 브라우저의 주소 필드에 더 이상 표시되지 않습니다.

    다음은 내가 사용하는 간단한 PHP 방법입니다. .php 확장자로 페이지가 요청되면 .php 확장자없이 새로운 요청이 생성됩니다. .php 확장자는 브라우저의 주소 필드에 더 이상 표시되지 않습니다.

    많은 .htaccess 제안 중 아무 것도 나를 위해 일한 적이 없기 때문에이 솔루션을 생각해 냈습니다. PHP에서 .htaccess가 내 서버에서 작동하지 않는 이유를 찾는 것보다 더 빨리 구현했습니다.

    이것을 각 PHP 파일의 시작 부분에 넣으십시오.

    include_once('scripts.php');  
    strip_php_extension();  
    

    그런 다음이 함수들을 'scripts.php'파일에 넣으십시오 :

    //==== Strip .php extension from requested URI  
    function strip_php_extension()  
    {  
      $uri = $_SERVER['REQUEST_URI'];  
      $ext = substr(strrchr($uri, '.'), 1);  
      if ($ext == 'php')  
      {  
        $url = substr($uri, 0, strrpos($uri, '.'));  
        redirect($url);  
      }  
    }  
    
    //==== Redirect. Try PHP header redirect, then Java, then http redirect
    function redirect($url)  
    {  
      if (!headers_sent())  
      {  
        /* If headers not yet sent => do php redirect */  
        header('Location: '.$url);  
        exit;  
      }  
      else  
      {
        /* If headers already sent => do javaScript redirect */  
        echo '<script type="text/javascript">';  
        echo 'window.location.href="'.$url.'";';  
        echo '</script>';  
    
        /* If javaScript is disabled => do html redirect */  
        echo '<noscript>';  
        echo '<meta http-equiv="refresh" content="0; url='.$url.'" />';  
        echo '</noscript>';  
        exit;  
      }  
    }  
    

    물론 확장 기능이없는 요청을 확장 기능이있는 파일로 리디렉션하도록 Apache를 설정해야합니다. 위의 솔루션은 요청 된 URI에 확장자가 있는지 여부를 단순히 확인합니다. 그런 다음 Apache는 확장자가있는 파일로 리디렉션을 수행하지만 요청 된 URI (확장자 없음) 만 브라우저의 주소 필드에 표시됩니다. 이점은 코드의 모든 "href"링크가 여전히 .php 확장자를 포함한 전체 파일 이름을 가질 수 있다는 것입니다.

  6. ==============================

    6.사실, 이것을 조작하는 가장 간단한 방법은

    사실, 이것을 조작하는 가장 간단한 방법은

    URL www.yoursite.com/data에서 해당 index.php 파일을 읽습니다. 추가로 가져 오려면 하위 폴더 (예 : '목록')를 열고 해당 폴더에 다른 index.php를 넣고 www.yoursite.com/data/list에서 해당 PHP 파일을 실행할 수 있습니다.

    이렇게하면 SEO에 매우 유용하게 사용할 수 있습니다.

  7. ==============================

    7.이고르와 같지만 줄이없이 작동해야합니다 2 :

    이고르와 같지만 줄이없이 작동해야합니다 2 :

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.php [NC,L]
    
  8. ==============================

    8..htaccess를 통해 파일 확장명 제거

    .htaccess를 통해 파일 확장명 제거

    원래 URL : http://ravinderrathore.herobo.com/contact.php

    htaccess 규칙은 URL에서 .php, .html 등 파일 확장명을 제거합니다.

    RewriteRule ^(.*)$ $1.php
    
    After Rewriting: http://ravinderrathore.herobo.com/contact
    
    RewriteEngine on
    
    RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
    
    RewriteRule ^index(.*)?$ index.php$1 [L,QSA]
    
    RewriteRule ^login_success(/)?$ login_success.php [L,QSA]
    
    RewriteRule ^contact(/)?$ contact.php [L,QSA]
    
  9. ==============================

    9.토니, 대본은 괜찮아요.하지만 100 개의 파일이 있다면? 다음 모든 코드에이 코드를 추가해야합니다.

    토니, 대본은 괜찮아요.하지만 100 개의 파일이 있다면? 다음 모든 코드에이 코드를 추가해야합니다.

    나는 당신이 각 php 파일에 메뉴를 포함한다고 생각한다. (아마 당신의 메뉴는 모든 웹 페이지에 나타난다.) 따라서 메뉴 파일에만이 두 줄의 코드를 추가 할 수있다. 이 작품은 나를 위해 : D 조

  10. ==============================

    10.첫 번째 대답과 거의 비슷하지만 더 많은 장점이 있습니다.

    첫 번째 대답과 거의 비슷하지만 더 많은 장점이 있습니다.

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.html -f
    RewriteRule ^(.*)$ $1.html
    
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php
    

    사이트에 다른 파일 확장명이 있으면 추가하십시오.

  11. from https://stackoverflow.com/questions/6534904/how-to-remove-file-extension-from-website-address by cc-by-sa and MIT license