2012-10-30 72 views
3

我的確有一個關於htaccess的問題。我試圖做到以下幾點:。Htaccess:如何獲取變量表單URL?

blabla.com/lalablabla.com/lulu

拉拉和露露是我的變量(顯示在這兩個網站不同的內容,卻是同一個文件(使用example.php)

所以我在htaccess的所做的是:

RewriteRule ^([^&]+)$ example.php?type=$1 

但呼應GET【類型】當我剛剛得到的文件名(「使用example.php」),但我想讓它顯示「拉拉」或「露露」

它的工作原理,當我那樣做:

RewriteRule ^blablabla/([^&]+)$ example.php?type=$1 

但我只是不需要 「blablabla」:d提前:)

+0

使用[L ]是明確你需要什麼 – Korri

回答

1

感謝試試這個?

RewriteRule ^([A-Za-z0-9-]+)/?$ example.php?type=$1 [NC,L] 
+0

不,'A-ZA-Z0-9-'會選擇'example' – zerkms

+0

也通過htaccess文件中的規則發送的URI的前導斜線剝去 –

0
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] 

QSA查詢字符串改寫

3

但呼應GET【類型】當我剛剛得到的文件名( 「使用example.php」)。但我希望它顯示「lala」或「lulu」。

這是因爲重寫規則循環,直到進入重寫引擎的URI與引擎出來的URI相同。您的正則表達式^([^&]+)$與您的規則的目標(example.php)匹配。所以,你要麼需要條件來檢查URI是不是已經example.php或者您檢查是否不存在該請求指向一個文件或目錄:

RerwiteCond %{REQUEST_URI} !/example\.php 
RewriteRule ^(.+)$ example.php?type=$1 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ example.php?type=$1 [L,QSA] 
+0

嗨,我試過「RewriteRule ^(。+ )$ example.php?type = $ 1 [L,QSA]「。它在example.php上工作。但是它銷燬了我已經使用過的頁面上的其他頁面。我已經在htaccess的頂部使用了以下內容:「RewriteCond%{REQUEST_FILENAME}!-d RewriteCond%{REQUEST_FILENAME}!-f RewriteCond%{REQUEST_URI}!/ $」 – user1774597