2013-03-19 60 views
0

我嘗試使用以下條件.htaccess創建一個規則:阿帕奇重寫規則,包括動態目錄

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^year=2013$ 
RewriteRule ^/media/news/info.php$ /media/news/month=Month&date=1 [L,R=301] 

顯然,這個規則應該工作,但它不會因爲/media/news是動態生成的,並沒有按apache找不到這些目錄,並將請求反饋給返回404的腳本語言。

我的問題是我如何能「製造」 apache不顧validationdynamic directories,也將讓用戶按照RewriteRule

回答

0

如果RewriteCondRewriteRule的條件與您的查詢匹配,RewriteRule將使用HTTP 301進行重定向,並且不會檢查目標的存在。

這意味着您的瀏覽器的位置應該已經改變。如果沒有改變,您的RewriteCond與您的URI不符或您的RewriteRule的情況不符合。

如果您希望Apache識別/ media/news/URL,您當然需要單獨的RewriteRule

+0

我也測試過在localhost上。使用匹配的RewriteCond和匹配的RewriteRule條件,即使目標不存在,重定向也會發生。 – 2013-03-19 13:21:32

+0

你的重定向應該在URI /media/news/info.php?year=2013恕我直言。 – 2013-03-19 13:21:57

+0

只是想通了!無論如何,你的努力。在RewriteRule中有第一個斜槓/: RewriteRule ^/media/news/info.php $ 在重寫日誌的幫助下,我能夠驗證RewriteRule因爲該初始斜槓而不匹配。 此致 – tigaszzz 2013-03-19 14:58:06