2009-12-02 81 views
0

我仍然非常迷失,mod_rewrite對我而言是一個令人難以置信的新手。我正在嘗試爲更好的網址設置一些規則。然而,在玩過它一段時間後,它似乎只使用列出的第一個規則。例如,如果我去「/ frontpage/some-post-slug」,它可以很好地工作,但如果我去「/ page/some-page-slug」,我會得到500內部服務器錯誤。有沒有人有任何想法會造成這種情況?mod_rewrite不使用多個規則

我的.htaccess文件是在低於滿:

<IfModule mod_rewrite.c> 

    Options +FollowSymLinks 

    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 

    RewriteRule ^frontpage/([A-Za-z0-9-]+)*$ /frontpage/?slug=$1 [NE,L] 
    RewriteRule ^page/([A-Za-z0-9-]+)*$ /page/?slug=$1 [NE,L] 

</IfModule> 

感謝您的幫助!

+0

您可以使用'RewriteLog/path/to/your/rewrite.log'和'RewriteLogLevel LEVEL'進行重寫日誌記錄,其中LEVEL爲0-9以準確查看Apache正在執行的操作。 – Marko 2009-12-02 21:43:16

回答

1

如果您在$ -sign之前刪除*,會發生什麼情況?我從來沒有使用過它們,我的規則和你的規則幾乎一樣。

+0

哈。我想我只是對正則表達式有足夠的瞭解才能讓我受益匪淺。這照顧了它。驚人。順便說一下,我真的很想設置它,以便第二條規則類似於RewriteRule^/([A-Za-z0-9 - ] +)* $/page /?slug = $ 1 [NE,L]所以要說一個聯繫頁面的URL不會/頁面/聯繫它只是/聯繫。起初,我試圖做到這一點,他們只是假設mod_rewrite對「/」目錄是挑剔的。你知道我怎麼能做到這一點? – seventeen 2009-12-02 21:46:50

+0

好...沒有星號^^ – seventeen 2009-12-02 21:47:40

+0

沒關係,我明白了。感謝你的幫助! – seventeen 2009-12-02 21:49:09