2012-10-02 70 views
0

我正在寫一個默認的.htaccess爲運行多個應用程序的JS包的系統。我想有URL重寫是期待這些應用程序從根本上運行(即,如果該系統包括在WWW/WWW /應用程序的名字/應該轉發給server.index.php?應用程序=應用程序名稱) 。URL重寫,保護自然路徑

這裏大概什麼我現在(我會跳過我的.htaccess其他的東西)。

RewriteRule ^use/?([^/]*)/?([^/]*)/?([^/]*)/? \server/index.php?app=$1&servable=$2&action=$3 
RewriteRule ^web/?([^/]*)/? \server/index.php?servable=clients&action=web&app=$1 

正如你所看到的,我目前使用的兩個端點:使用轉發到後端的任何行動,而網絡轉發到實際服務應用程序本身作爲一個HTML文檔的操作。 我基本上想跳過在後一種情況下的URL 網/前綴,但不妨礙訪問已經在系統目錄中存在天然的目錄。

這裏的full source。 (正如你可以看到,我的.htaccess也可能存在其他問題,所以如果你有任何指針,我很樂意修復它們。)

回答

0

我基本上想跳過網址/前綴在後一種情況下,但不阻礙訪問系統目錄中已存在的自然目錄。

您可以檢查使用條件標誌-f-d。所以,如果你有這些條件右側的/網絡規則上面:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

意味着請求的URI不映射到現有的文件或目錄,然後:

RewriteRule ^/?([^/]*)/? \server/index.php?servable=clients&action=web&app=$1 

只是沒有/web部分。

+0

感謝。我會做一些測試,但它似乎工作。 – Eiskis