.htaccess 参数中包含多目录字符串的htaccess重写规则
我已经在谷歌上搜索了一段时间,但似乎找不到解决方案,所以我将直接针对我的问题定制一个问题 我在一个足球/足球网站上工作,并参加了所有比赛。每个数据库行都有一个字段,其中包含一个虚拟文件名,如“2010赛季/2010年5月26日/hometeam vs awayteam.php” 我想要-->/matches.php?url=2010赛季/2010年5月26日/hometeam-vs-awayteam.php.htaccess 参数中包含多目录字符串的htaccess重写规则,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我已经在谷歌上搜索了一段时间,但似乎找不到解决方案,所以我将直接针对我的问题定制一个问题 我在一个足球/足球网站上工作,并参加了所有比赛。每个数据库行都有一个字段,其中包含一个虚拟文件名,如“2010赛季/2010年5月26日/hometeam vs awayteam.php” 我想要-->/matches.php?url=2010赛季/2010年5月26日/hometeam-vs-awayteam.php 看起来像-->/matches/2010赛季/2010年5月26日/hometeam-v
看起来像-->/matches/2010赛季/2010年5月26日/hometeam-vs-awayteam.php 我的第一个猜测是重写规则如下所示:
RewriteRule ^/matches/(.*)$ /matches.php?url=$1 [L]
但这只给了我一个404错误。我尝试了不同的方法,但没有解决我的问题。
是否将多个子文件夹传递到单个参数中有问题?这应该适用于您:
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赛季/26-may-2010/hometeam vs-awayteam.php
到/matches/2010赛季/26-may-2010/hometeam vs-awayteam.php
,然后默默地将其重写回/matches.php?url=2010赛季/26-may-2010/hometeam vs-awayteam.php
在
matches.php
文件中,使用$\u GET['url']
以获取url
参数。由于某种原因,这没有起作用。match.php文件与htaccess文件位于同一目录中。如果我添加一个空的“matches”文件夹,那么matches.php会得到一个404,如果我删除文件夹“matches”,那么整个URL会得到一个404。是的,matches.php从一开始就通过$\u GET调用了url。但是重写中的某些内容不起作用。matches.php文件在根目录中还是在子文件夹中,例如,两者都在。我在测试域(例如workshopdomain.com/test/soccer/matches.php)和真实域(例如realdomain.com/matches.php)上运行了它。在这两种情况下,我在matches.php所在的目录中都有一个htaccess。同样的结果…404