2013-05-03 111 views
0

我怎么能这个网址htaccess的重写的动态网址

http://www.example.com/index.php?test=<some dynamic data>

改写为

http://www.example.com/<some dynamic data> 

我已经试过

RewriteEngine on 
RewriteRule index.php?test=(\w+)?$ $1 

虽然这是行不通的。

这怎么办?是否仍然有可能例如echo $_GET['test']与重写的URL(或任何与查询)?

+1

“重命名”的概念并没有对此作出任何意义。 mod_rewrite的是在两件事情,客户端(浏览器)谁是解析URL作为资源的位置,这需要一个请求的资源,并将其映射到实际资源的服务器中间。这两件事情是不同的。 Mod_rewrite只能在服务器尝试将其映射到资源之前,采取客户端请求并处理的内容。你想做什么? – 2013-05-03 22:26:22

+0

我试图删除index.php?test = – Sidetik 2013-05-03 22:32:29

回答

1

如果在浏览器中输入的网址是动态的:

http://www.example.com/<some dynamic data> 

,你试图把它改写本,为您的代码:

http://www.example.com/index.php?test=<some dynamic data> 

那么试试这个:

RewriteEngine on 
RewriteCond %{REQUEST_URI} !index.php 
RewriteRule ^(.*)$ index.php?test=$1 [NC,L] 

最后一行接受任何内容,并将其发送到带有测试参数的index.php。 RewriteCond确保它不会使用index.php本身执行此操作,否则将会是无限循环。

如果你正在尝试走另外一条路,和你的代码中创建动态URL显示在您的网站,那么这是别的地方在你的网站代码,无论你正在创建你的HTML。一旦创建,这个规则将重写它们回到index.php。