2015-10-31 47 views
0

我無法實現URL重寫。使用wamp和php實現URL重寫

什麼我迄今所做的:

啓用了Apache rewrite_module

2.在目錄中增加了一個.htaccess文件到我的網站(試驗):

127.0.0.1/test/

其中包含以下內容:

RewriteEngine on 
RewriteRule ^/news/([0-9]+)\.html /news.php?news_id=$1 

我有一個news.php文件,其中包含

echo "hello world"; 

現在,每當我去網址:http://127.0.0.1/news/1,我得到一個

'找不到網頁'

回答

0

我是成功的在下面。

文件:

document_root/ 
|- .htaccess 
|- news.php 

的.htaccess:

RewriteEngine on 
RewriteRule news/([0-9]+)\.html news\.php?news_id=$1 

http://127.0.0.1/news/1.html
- >你好世界

0

我想,你已經成功啓用的重寫模塊(rewrite_module)你Apache服務器,並且您已將.htaccess文件放入test位於Web服務器根目錄中的目錄(例如:c:\wamp\www\test)。

所以在這裏我們有2案件你想做的事(我想):使用

    1. 訪問您的網址,例如:http://127.0.0.1/test/news/1.html
  • 訪問使用例如網址:http://127.0.0.1/news/1.html

因此,對於第一種情況下,你剛纔編輯您的.htaccess文件是這樣的:

RewriteEngine on 
RewriteRule ^news/([0-9]+)\.html news.php?news_id=$1 

喜歡這裏http://127.0.0.1/test/news/1.html任何URL將被重寫test\news.php,並傳遞給它的參數news_id


而對於第二種情況,你必須把你的.htaccess文件到Web服務器的根目錄下,並添加只是RewriteBase指令

的RewriteBase指令指定URL前綴用於每-directory(htaccess)用於替換相對路徑的RewriteRule指令。

所以你.htaccess會是這樣:

RewriteEngine on 
RewriteBase /test 
RewriteRule ^news/([0-9]+)\.html news.php?news_id=$1 

當然,你可以找到關於如何改寫toyr使用.htaccess文件URL淨很多很多教程...

希望這可以幫助。