2010-03-18 16 views
0

我正在嘗試使用.htaccess重寫URL。我在Apache版本2.2.15上運行。.htaccess重寫輸出不需要的內容。我認爲?

的.htaccess的內容:

RewriteEngine on 
RewriteRule cars/(.*) cars/member_page.php?user=$1 
RewriteRule cars/(.*)/ cars/member_page.php?user=$1 

member_page.php的內容:

<?php 
echo $_GET[user]; 
?> 

URL輸入到瀏覽器:

http://www.mydomain.com/cars/user1 

瀏覽器將輸出字符串「member_page.php 「而不是」user1「

如何從原始URL輸出(。*)的內容。

回答

0

這種格式的問題:

RewriteEngine on 
RewriteRule cars/(.*) cars/member_page.php?user=$1 [L] 
RewriteRule cars/(.*)/ cars/member_page.php?user=$1 [L] 

原來,我是重寫汽車/不管到汽車/ member_page.php。這造成了重寫到重寫所在的同一目錄的問題。

所以

cars/user1 

被重寫

cars/member_page.php/user=member_page.php 

它是用從第二改寫爲最終信息的內容兩次改寫。解決方案是將member_page.php移動到不同的目錄。

RewriteEngine on 
RewriteRule cars/(.*) memberscars/member_page.php?user=$1 [L] 
RewriteRule cars/(.*)/ memberscars/member_page.php?user=$1 [L] 
0

那麼,首先,它的$_GET['user'],而不是$_GET[user](注意引號)。關於你的mod_rewrite規則:

RewriteEngine On 
RewriteRule cars/(.*) cars/member_page.php?user=$1 [L] 
RewriteRule cars/(.*)/ cars/member_page.php?user=$1 [L] 

L表示最後的規則被應用。

+1

但是302重定向可能不是他想要的,是嗎? [L]已經不行了嗎? –

+0

剛剛意識到這一點,並相應地編輯了我的答案。 – middus