为多个参数和页面编辑 .htaccess

Editing .htaccess for multiple parameters and pages

我很难理解如何编辑我的 .htaccess 文件。

目前我有以下url example.com/fixture.php?country=UK&cup=prem&year=1998&id=123

我想实现example.com/UK/prem/1998/123

URL 中的每个参数都会有一个页面,例如 example.com/UK/prem/ 会有关于联赛和其他杯赛的信息,与国家参数一样,页面上也会有信息。

当前这是我的 .htaccess 文件

RewriteEngine On

RewriteRule ^fixture\.php$ - [L]

RewriteRule ^([^/]+)/?$ /fixture.php?id= [L,QSA]

RewriteRule ^([a-z]{2})/([^/]+)/?$ /fixture.php?country=&cup= [L,QSA]

RewriteRule ^([^/]+)/([0-9]+)/?$ /fixture.php?country=&cup=year=&id= [L,QSA]  

目前我只有 404 状态。我搜索了堆栈溢出并修改了上面的代码,这是我认为我 运行 遇到问题的地方....

使用您展示的示例,请尝试遵循 htaccess 文件中设置的规则。请确保您的 htaccess 文件存在于根 folder/directory.

另外,请确保在测试您的网址之前清除浏览器缓存。

RewriteEngine On
##Blocking direct access to fixture.php here, added NC flag here.
RewriteRule ^fixture\.php$ - [NC,L]

##Rules for handling 4 parameters in uri.
RewriteRule ^([^/]*)/([^/]*)/(\d{4})/\d{3}/?$ /fixture.php?country=&cup=year=&id= [L,QSA]  

##Rules for handling 2 parameters in uri.    
RewriteRule ^([a-zA-Z]{2})/([^/]+)/?$ /fixture.php?country=&cup= [L,QSA]

##Rules for handling 1 parameter in uri.
RewriteRule ^([^/]*)/?$ /fixture.php?id= [L,QSA]