2010-12-10 67 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。它不會修改您發送的任何內容。