>

http://example.com/news/news_post.php?id=dynamic_id 와 같은 URL을 만들기 위해 htaccess를 사용하고 싶습니다   http://example.com/news/news_post/dynamic_id 처럼 보이는 URL . 따라서 기본적으로 .php 파일 확장자를 제거하고 ?id=dynamic_id 를 만드십시오.   /dynamic_id 로  내 news_post.php 페이지입니다.

도움이 될만한 것을 찾기 위해 다른 예를 찾아 보았지만 도움이되는 것을 찾을 수 없었습니다.

다른 사람이 나를 도와 줄 수 있다면 대단히 감사하겠습니다!


  • 답변 # 1

    이것을 시도

    이걸 테스트했는데 시스템에서 완벽하게 작동합니다.

    .htaccess

    Options +FollowSymLinks
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME}\.php -f 
    RewriteRule ^(.*)$ $1.php
    //above code is use for remove the .php 
    RewriteRule ^news/news_post/([\w-]+) news_post.php?id=$1
    
    

    Index.php

    이것에, 나는 href="javascript:void(0);" 를 설정   onclick 를 추가했습니다  fucntion 및 매개 변수를 함수에 전달하십시오. 함수에서 window.location="news/news_post/"+user_id+""; 를 설정했습니다.  URL은 news/news_post/1 처럼 보입니다.

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    <body>
    <?php 
    $userdata['Id']=1;
     ?>
    <a href="javascript:void(0);" onclick="myfunciton(<?php echo $userdata['Id']; ?>)">Click me</a>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
    <script type="text/javascript">
            function myfunciton(user_id){
                    window.location="news/news_post/"+user_id+"";
            }
    </script>
    </body>
    </html>
    
    

    news_post.php

    $_REQUEST 를 사용하여 URL 값을 얻을 수 있습니다

    <?php 
    echo $_REQUEST['id'];//output is 1
     ?>
    
    

    출력

    출력을 얻습니다

    domain.com/news/news_post/1
    
    

  • 답변 # 2

    You Can add this code to your .htaccess file:

    .htaccess

    와이즈 비즈
    

  • 답변 # 3

    빨리 이것을 인터넷으로 검색하고 시도 해본 결과 ...

    .htaccess

    RewriteEngine on     
    RewriteCond %{QUERY_STRING} (^|&)id=dynamic_id($|&)
    RewriteRule ^news/news_post\.php$ /news/news_post/dynamic_id?&%{QUERY_STRING}
    
    

    news_post.php

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^news/news_post/(\d+)*$ ./news_post.php/$1
    
    

    따라서 나머지 URL 매개 변수에서 원하는대로 사용하고 원하는대로 사용할 수 있습니다 ...

    참고 :news_post.php의 var_dumps는 무슨 일이 있었는지 그리고 무슨 일이 있었는지 신속하게 파악하는 데 사용되었습니다. p>

    물론 당신은 이것에 맞게 바꿀 것입니다. 당신이하고 싶거나하지 않은 것을 추측했습니다.

    예 :

    <?php
    //var_dump($_SERVER);
    //var_dump(explode('/',$_SERVER['REQUEST_URI']));
    $url_segments = explode('/',$_SERVER['REQUEST_URI']);
    //var_dump($url_segments);
    $id = $url_segments[3];
    //var_dump($id);
    echo __FILE__;
    echo '<br>';
    echo 'The Dynamic Id is '. $id;
    
    

    결과 :

    http://phptutorials.com/news/news_post/1
    
    

    중앙 파일을 사용하여 모든 요청을 처리합니다. .htaccess

    로 돌아 가기
    /home/phptutorials/public_html/news_post.php
    The Dynamic Id is 1
    
    

    이제 news.post.php에 표시된 것처럼 index.php를 중앙 "policeman"으로 사용하여 위의 코드를 사용하여 원하는 페이지를 표시 할 수 있습니다. 그러나 그것은 당신의 질문과 당신이 조사하고 싶을만한 것이 아닙니다.

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

  • 이전 c - 메모리 할당?
  • 다음 javascript - PHP 세션에 저장되는 업데이트 된 SQL 데이터베이스 값을 얻는 방법은 무엇입니까?