2016-09-21 60 views
0

mod_rewrite有問題。 我想:相對路徑和mod_rewrite問題

HTP://example.com/a/some_text - > HTP://example.com/ P1 = SOME_TEXT和 HTP://example.com/b/some_text - > HTP: //example.com/?p1=some_text

所以,I型:

RewriteCond %{REQUEST_URI} ^(.*)\/(a|b)\/(.*)$ 

RewriteRule ^(.*)$ ?fsearch=$2 [QSA] 

,並得到在CSS錯誤的相對路徑,如HTP://example.com/a/CSS/main。 css而不是htp://example.com/CSS/main.css。並且2美元也沒有得到。

幫助,請

回答

0

$2試圖挑RewriteRules主題的第二捕獲組,但只有一個!您可能的意思是%2RewriteCond中挑選...

由於您只在RewriteRule附加了一個查詢字符串,原始URI(路徑)保持不變。

您可以簡化RewriteRule中的模式,因爲您無論如何都對該主題不感興趣。

這可能是你在找什麼:

RewriteEngine on 
RewriteCond %{REQUEST_URI} ^(.*)\/(a|b)\/(.*)$ 
RewriteRule^/?fsearch=%3 [QSA] 

好多然而將直接改寫到任何腳本,你居然要處理的請求安全的另一個重寫輪找到索引文件,因此是這樣的:

RewriteEngine on 
RewriteCond %{REQUEST_URI} ^(.*)\/(a|b)\/(.*)$ 
RewriteRule^/index.php?fsearch=%3 [QSA] 

而且除非你決定使用在RewriteCond第一捕獲組也可以簡化進一步:

RewriteEngine on 
RewriteCond %{REQUEST_URI} \/(a|b)\/(.*)$ 
RewriteRule^/index.php?fsearch=%2 [QSA] 
+0

arkascha,現在它的工作方式爲example.com/index.php?fsearch=a,路徑問題仍然存在。 –

+0

而「路徑問題」究竟是什麼? – arkascha

+0

通讀您的評論我假設您測試了我的答案的過時版本。請注意,我更新(固定)了幾次。 – arkascha