2011-04-04 43 views
0

我不明白爲什麼這不起作用。也許有人可以向我解釋。RewriteRule不符合預期(由我)

我有以下幾點:

http://www.mydomain.de/my-apache-tag.html 

應改寫爲

http://www.mydomain.de/tag/my-apache 

在我的.htaccess我啓用了這個規則:

RewriteRule ^/(.*)-tag\.html$ /tag/$1 

在這兩者之間我理解一切/和之前-tag.html應被視爲參數1.

但是,以上將導致404。我甚至把域放在/ tag/$ 1前面,但這不起作用。

任何幫助表示讚賞,非常感謝。

Christian

+0

嘗試在規則的「匹配」部分開始時刪除「/」。 – 2011-04-04 08:48:04

回答

0

根據apache版本,不需要前導斜槓。 (如果您希望能夠匹配兩種情況,您可以放置​​/?)請參閱@Jeff Parker評論。

此外,如果要在打字http://www.mydomain.de/my-apache-tag.html時在瀏覽器中將URL顯示爲http://www.mydomain.de/tag/my-apache,則應添加[R]標誌以重定向。

當然,您的服務器上的文件應在tag/目錄中的名稱my-apache。或者你將有404錯誤。

如果你想在客戶端輸入http://www.mydomain.de/tag/my-apache和送達http://www.mydomain.de/my-apache-tag.html您的規則是錯誤的,應該是:

RewriteRule ^tag/(.*)$ /$1-tag.html 

如果你想兩者相結合的行爲,要小心循環。