2010-08-26 264 views
0

在我的htaccess文件中,我有以下兩條規則。如果第一個不匹配,我想讓第二個發生。目前,他們都跑了。有沒有什麼方法可以解決碰撞問題?HTACCESS重定向

redirect 301 /lorem/ipsum-keyword.html /lorem/dolorem-keyword.html 
RewriteRule (.*)-keyword.html$ /dir/file.php?param=$1 

在此先感謝。

回答

1

兩個使用mod_rewrite和使用-L選項,以確保不會再發生重寫。就像這樣:

RewriteRule ^lorem/ipsum-keyword.html$ http://yourdomain.com/lorem/dolorem-keyword.html [R=301,L] 
RewriteRule (.*)-keyword.html$ /dir/file.php?param=$1 
+0

Hrm,它不適用於我:( – Matrym 2010-08-26 21:03:10

+0

你需要調整第一條規則來匹配你的確切文件,我會更新。 – mwittrock 2010-08-26 21:16:48

+0

^也很重要,謝謝! – Matrym 2010-08-26 21:26:06

0

您可能對301使用重寫規則並添加L標誌,因此它將忽略以下規則。

我無法測試它,但這應該工作:

RewriteRule /lorem/ipsum-keyword.html$ /lorem/dolorem-keyword.html [R=301,L] 
RewriteRule (.*)-keyword.html$ /dir/file.php?param=$1 
+0

第一條規則根本就沒有捕獲......即使當我刪除第二個 – Matrym 2010-08-26 21:14:31

+0

那麼你的「重定向301」也不起作用。您可能必須使規則相對而不是絕對。因爲我不知道你的文件系統結構我不能告訴你什麼是錯誤的規則的聯合體應該是好的 – 2ndkauboy 2010-08-26 21:18:38