2015-10-31 44 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净很多很多教程...

希望这可以帮助。