我已经谷歌搜索了一段时间,但似乎无法找到解决方案,所以我会直接针对我的问题量身定制一个问题。
我在足球/足球网站上工作,并参加了所有比赛。每个数据库行都有一个包含虚拟文件名的字段,如“2010-season / 26-may-2010 / hometeam-vs-awayteam.php”
我想要 - > /matches.php?url=2010-season/26-may-2010/hometeam-vs-awayteam.php
看起来像 - > /matches/2010-season/26-may-2010/hometeam-vs-awayteam.php
我的第一个猜测是重写符号看起来像这样:
RewriteRule ^/matches/(.*)$ /matches.php?url=$1 [L]
但这只会给我404错误。我尝试了不同的方法,但没有解决我的问题。 是将多个子文件夹传递到单个参数的问题吗?
答案 0 :(得分:0)
这应该适合你:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /matches\.php\?url=(.*)\ HTTP
RewriteRule ^ /matches/%2? [R=301,L]
RewriteRule ^matches/(.*)$ /matches.php?url=$1 [L]
它会将/matches.php?url=2010-season/26-may-2010/hometeam-vs-awayteam.php
重定向到/matches/2010-season/26-may-2010/hometeam-vs-awayteam.php
,然后默默地将其重写为/matches.php?url=2010-season/26-may-2010/hometeam-vs-awayteam.php
。
在matches.php
文件中使用$_GET['url'];
获取url
参数。