2016-09-21 118 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