2016-10-21 101 views
0

我嘗試使用.htaccess的重寫以下網址:重寫規則映射到URL參數不帶擴展

http://example.com/index.php?item_id=123456 

我想它改寫爲:

http://example.com/213456 

參數ITEM_ID是在我的PHP文件中捕獲用下面的代碼:

<?php 
    if (isset($_GET['item_id'])) { 
     $url_item = $_GET['item_id']; 
     $urlParmResult = filter_var($url_item, FILTER_SANITIZE_URL); 
     echo $urlParmResult; 
    }else{ 
     echo "The link you requested does not exist."; 
    } 
?> 

我使用下面的.htaccess:

RewriteEngine On 
RewriteRule ^([^/]*)$ index.php?item_id=$1 [L] 

但是我得到的頁面上的返回是:

index.php 

是否有人可以幫助我嗎?我在這裏做錯了什麼?

回答

1

您可以使用:

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

消除現有的文件或目錄,以避免重定向指數指數

+1

這工作完全!謝謝!你介意用RewriteCond描述一下這裏發生的一些事情嗎? – remixdesign

+0

你可以在這裏閱讀關於文件或目錄測試的所有信息:http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond – Croises

+1

非常感謝。這是一個巨大的幫助! – remixdesign