2010-12-10 43 views
0

使用Apache /的.htaccess RewriteEngine叙述:htaccess重写网址 - 我如何在我的代码中编写url?

如果我想换一个url像

www.foo.com/mypage.php?var=abc & VAR2 = 123

www.foo.com/abc/123

我是否需要手动重写我的PHP文件中的URL,还是这样处理?

即,在我的代码< A HREF = “mypage.php?VAR = ABC & VAR2 = 123” >到< A HREF = “ABC/123” >

是否mod_rewrite的手柄这对我来说变化?或者它只翻译它接收到的URL,而不是根据.htaccess文件中的规则重写生成的HTML?

回答

1

如果你的服务器httpd配置访问,您可以将您的服务器Apache服务器的配置如下代码或放入您的httaccess文件

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /mypage.php [L] 
</IfModule> 

和下面的代码放置在您的mypage.php文件顶部,

$Get_data = explode('/', $_SERVER[REQUEST_URI]); 
$_GET['var'] = $Get_data[1]; 
$_GET['var2'] = $Get_data[2]; 

现在你当你使用这些www.foo.com/mypage.php?var=abc & VAR2 = 123 网址或这些www.foo.com/abc/123网址得到相同的结果。

有任何意见,请让我知道。

0

是的,你必须改变它。

Mod只重写内部重定向请求。它会改变应用程序可见的HTTP标头,但您仍然可以通过额外的被标记的标头字段来重现原始URL。它不会修改您发送的任何内容。