麻煩的是,你的第二個規則是由第一個規則滿足。你可以簡單地圍繞切換他們,也將努力:
RewriteEngine On
RewriteRule ^team/([^-]+)-([^&]+)/members$ index.php?p=teammembers&team_name=$1&team_id=$2
RewriteRule ^team/([^-]+)-([^&]+)$ index.php?p=teamprofile&team_name=$2&team_id=$1
雖然在第一條規則的微小變化也將解決這個問題:
RewriteEngine On
RewriteRule ^team/([^-]+)-([^/]+)[/]?$ index.php?p=teamprofile&team_name=$1&team_id=$2 [L]
RewriteRule ^team/([^-]+)-([^/]+)/members[/]?$ index.php?p=teammembers&team_name=$1&team_id=$2 [L]
注意,我在第一個改變匹配字符串規則從([^&]+)
到([^/]+)
- 這種方式正斜槓不包括在匹配的情況下,如mydomain.com/team/1-2/
。末尾的[/]?
規則是該尾隨正斜槓的可選匹配項。我同樣添加一個成員的結束規則爲好,現在它的工作原理是這樣的:
mydomain.com/team/1-2/
- 去index.php?p=teamprofile&team_name=1&team_id=2
mydomain.com/team/1-2
- 去index.php?p=teamprofile&team_name=1&team_id=2
mydomain.com/team/1-2/members
- 去index.php?p=teammembers&team_name=1&team_id=2
mydomain.com/team/1-2/members/
- 去index.php?p=teammembers&team_name=1&team_id=2
謝謝你一個:) – Rickstar