2010-07-16 87 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