2010-07-16 91 views
2

我想重写一个特定的URL,我将展示一个示例,以便您明白我的意思。mod_rewrite:重写特定的URL

首先,我目前的重写规则:

RewriteRule ^/?([a-zA-Z0-9/-]+)/?$ /index.php [NC,L]

现在我想这个网址:

http://example.tld/foobar?test

改写为:

http://example.tld/foobar

注:仅供/foobar?test!例如。不适用于/somethingelse?test,也不适用于/foobar?blah

在此先感谢!

编辑:我意识到我想301重定向从/foobar?test/foobar,而不是“传统”重写。希望这是可能的。

回答

1
RewriteCond %{QUERY_STRING} ^test$ 
RewriteRule ^/foobar$   /foobar  [NC,R=301,L] 
+0

不能得到这个工作。 – user367217 2010-07-16 08:19:14

+0

@Fabian:你不能重定向到'REQUEST_FILENAME'!我想你的意思是'%{REQUEST_URI}',嘿。 – 2010-07-16 10:57:56

+0

@tshabalala:另外,如果您将此规则放在可能匹配的其他规则之前,或者重定向可能会被放弃,则将“L”添加到标志。 – 2010-07-16 10:59:24