2017-09-16 55 views
1

我一直面臨着這個問題相當長的一段時間,但我一直只是改變了文件名,但我不能這樣做,這一次.htaccess的錯誤重寫規則壓倒一切的正確

我有以下兩種的RewriteRules設置:

RewriteRule ^register-company register-company.php 
RewriteRule ^register register.php 

同樣適用於

RewriteRule ^register/company register-company.php 
RewriteRule ^register register.php 

不管我做什麼,改變順序,添加標誌,逃生的連字符,它總是重定向到register.php,而不是註冊的公司,因爲它應該(鏈接是domain.com/register-company)

唯一實際工作的是完全改變名稱,例如公司註冊。請注意,如果刪除了寄存器register.php線只是正常工作和重定向正確註冊,company.php你的目標URI register-company.php未來規則的模式還匹配即^register因此第二個規則

回答

1

發行第一條規則後,始終執行。

您需要使用端錨在您的規則:

RewriteRule ^register-company/?$ register-company.php [L,NC] 

RewriteRule ^register/?$ register.php [L,NC] 

現在第二個規則將不會觸發因爲register-company.php將不匹配^register/?$

另外/?$在兩個規則中使尾部斜線可選。

+1

它的確如此,謝謝:p – alps