2013-04-08 71 views
0

我無法訪問我的GET請求......mod_rewrite是否會導致GET請求被忽略?

我的.htaccess:

Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase /alex 
RewriteRule ^admin/([a-zA-Z0-9]+)/?$ admin/index.php?page=$1 
RewriteRule ^admin/([a-zA-Z0-9]+)?$ admin/index.php?page=$1 
RewriteCond %{REQUEST_URI} !(admin|assets|inventory|test) 
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?page=$1 
RewriteCond %{REQUEST_URI} !(admin|assets|inventory|test) 
RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1 
ErrorDocument 404 /alex/index.php?page=404 
ErrorDocument 403 /alex/index.php?page=404 

我打的網址:

http://example.com/alex/admin/users?pagenum=37

示例PHP代碼:

echo $_GET["pagenum"]; 

但是,我絕對沒有得到變量echo'ed在我的PHP。我的.htaccess是否造成這種情況?如果不是......什麼是?

回答

4

您需要使用QSA標誌在你重寫:

Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase /alex 
RewriteRule ^admin/([a-zA-Z0-9]+)/?$ admin/index.php?page=$1 [L,QSA] 
RewriteRule ^admin/([a-zA-Z0-9]+)?$ admin/index.php?page=$1 [L,QSA] 
RewriteCond %{REQUEST_URI} !(admin|assets|inventory|test) 
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?page=$1 [L,QSA] 
RewriteCond %{REQUEST_URI} !(admin|assets|inventory|test) 
RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1 [L,QSA] 

的標誌將任何現有的查詢字符串添加到您在規則的目標構建的一個結束。通常,如果規則目標中沒有?,則查詢字符串默認爲追加。但是如果您的目標確實有?,則需要QSA

+0

什麼是L標誌呢? – Pachonk 2013-04-08 09:53:23

+0

@Pachonk它只是停止重寫當前的迭代,沒有必要應用任何其餘的規則,如果你已經匹配其中之一 – 2013-04-08 09:54:01

+0

好吧!謝謝,我會在10分鐘內接受這個答案。對不起,這裏有一些用戶id10t錯誤。 – Pachonk 2013-04-08 09:54:43

相關問題