2013-06-12 58 views
0

條件很多工作的.htaccess的病情,我想嘗試的東西一樣,如果在.htaccess:那裏面

我想Redictes每個?sp=SOMEWHAT到不同勢?p=NNN(一些數) 我有一個100頁?sp=。 而且我不想在每個頁面加載100條規則上工作。 如果這是另一種解決方法,我很高興知道。

if(RewriteCond %{HTTP_HOST ^?sp=}{ 
    RewriteRule ^?sp=bar ?p=5 
    RewriteRule ^?sp=foo ?p=9 
    RewriteRule ^?sp=tin ?p=15 
} 

這是SP之間沒有邏輯=和p =

更新:?我沒有訪問服務器的配置。

+0

不,不幸的是,沒有其他方法可以實現這一目標;) 您可以調整自己的URL邏輯以使其工作。將該號碼附加到SOMEWHAT。 – Yami

+0

這不是邏輯?sp =和?p = – yonilobo

+0

嗯,我的意思是當你打電話給index.php?sp = foo_001你可以在htaccess中通常重寫這個index.php?sp = foo&p = 001 – Yami

回答

1

這可以通過RewriteMap指令來完成(,如果你有權訪問服務器配置,就像在評論中指出的一樣,不知道爲什麼他們認爲需要限制...)。例如:

RewriteMap sp_to_s txt:/path/to/map.txt 
RewriteRule ^?sp=(.*) ?p=${sp_to_s:$1|0} 

(該0是默認值,如果沒有在地圖匹配的對)。

這裏有一個樣品的map.txt:

bar 5 
foo 9 
tin 15 

有使用地圖功能的更多的方式;有關詳細信息,請參閱mod_rewrite的文檔。

+1

雖然需要訪問服務器配置,但不能在.htaccess中使用 – CBroe

+0

我無法訪問服務器配置。 這是另一種方法嗎? – yonilobo

+0

@yonilobo我不知道任何其他方法,只是有很多規則:'重寫規則^?sp = bar?p = 5''重寫規則^?sp = foo?p = 9'等等。如果你需要每個人的條件...運氣不好,你只需要複製和粘貼很多東西。抱歉。 :) –