2014-03-13 83 views
0

我遇到了一個問題.htaccess和數字。Htaccess跳過空白行問題

我有一個目錄

 http://somedomain.com/directory/ 

當我將號碼添加到它,我想用htaccess的創建一個變量。

 http://somedomain.com/directory/ 

     RewriteRule ^[0-9]+$ index.php?action=viewclient&clientnumber=$1 [L] 

當我把這個網址,我想clientnumber要創建

 http://somedomain.com/directory/5 

然而,當我把它沒有數字,但它仍然會創建一個空白$clientnumber$action變量。

 http://somedomain.com/directory/ 

是否有變化,我需要作出htaccess的,以添加這些變量,如果在URL,但空白的一個數字。如果未添加變量,則跳過此htaccess行。

Thankyou

編輯:我不能得到的URL的工作。從提供的答案。我在睡覺&將重新檢查這個週末。

如果我把/目錄/我得到我想要的。如果我把/目錄/ 4或目錄/ 87(任何數字)我得到一個404錯誤。

EDIT2 - WEIRD ???

我正要睡覺,但決定再次嘗試&選擇了不同的客戶端。這些網址是相同的格式。

某些客戶端工作(顯示正確的頁面),其他URL(正確的URL),顯示404頁面。

我會嘗試&在週末調試更多。 - 很奇怪。 (我會在我的index.php頂部添加一個調試腳本/日誌 - 以查看頁面是否加載。)

編輯3: - 我在索引頂部添加了一個小日誌腳本.php - 它記錄有效/工作的URL,但不激活,如果它的404錯誤(錯誤是同一格式的URL - 所以應該激活index.php - &然後我的index.php應該做計算/檢查。看是否值是有效的,但它不是甚至還讓我的PHP腳本

OK,我要去睡覺了 - 將在週末重新嘗試

+0

你可以在你的index.php中設置動作,如 'if(!isset($ _ GET ['clientnumber'])){DO_REDIRECT_HERE}' –

+0

W這裏是你的.htaccess文件相對於目錄?您是否爲該位置設置了AllowOverride All?你確定設置了'RewriteEngine On'(IE正在執行RewriteRules)。 – DorianFM

回答

0
RewriteRule ^[0-9]+$ index.php?action=viewclient&clientnumber=$1 [L] 

。是指第一個捕獲組。您的正則表達式中沒有任何捕獲組。這是正確的:

RewriteRule ^([0-9]+)$ index.php?action=viewclient&clientnumber=$1 [L] 
-1

改變它

RewriteRule ^([0-9])$ index.php?action=viewclient&clientnumber=$1 [L]

(無+後[0-9])

將意味着規則只執行數0-9在請求中存在

+0

對不起,我誤解了你的問題,主要關注於這個問題:「如果網址中有一個數字,我是否需要對htaccess進行更改以僅添加這些變量」 – DorianFM