2013-07-31 13 views
1

大多數RewriteRules工作正常,但有一對夫婦有相同的單詞,並沒有去正確的頁面。htaccess類似的文件名轉到同一頁

這裏是我的全部的htaccess

Options +FollowSymLinks 
RewriteEngine On 

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

# Rewrites for main pages 
RewriteRule home index.php 
RewriteRule about-us about-us.php 
RewriteRule business-advice business-advice.php 
RewriteRule associates associates.php 
RewriteRule become-an-associate associates-sign-up.php 
RewriteRule blog blog.php 
RewriteRule contact-us contact-us.php 
RewriteRule log-in log-in.php 
RewriteRule sign-up sign-up.php 

問題所在的兩個相關聯的鏈接中。當我去[MYURL] /關聯它可以正常工作,但是如果我去[MYURL] /成爲聯繫人,它會帶我到正確的URL,但顯示[MYURL] /同事的內容。 ? 謝謝,

回答

4

RewriteRule的模式是正則表達式和規則都循環,直到該URI停止更改。這意味着第一次,當你請求/become-an-associate時,它匹配並被重寫爲/associates-sign-up.php。然後,第二次,與associates模式的規則相匹配,因爲「/ 同夥 -sign-up.php」。您需要添加邊界檢查(例如^$)還有[L]標誌:完美現在

# Rewrites for main pages 
RewriteRule ^home/?$ index.php [L] 
RewriteRule ^about-us/?$ about-us.php [L] 
RewriteRule ^business-advice/?$ business-advice.php [L] 
RewriteRule ^associates/?$ associates.php [L] 
RewriteRule ^become-an-associate/?$ associates-sign-up.php [L] 
RewriteRule ^blog/?$ blog.php [L] 
RewriteRule ^contact-us/?$ contact-us.php [L] 
RewriteRule ^log-in/?$ log-in.php [L] 
RewriteRule ^sign-up/?$ sign-up.php [L] 
+0

作品。你先生,是個天才! –

相關問題