Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 参数中包含多目录字符串的htaccess重写规则_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess 参数中包含多目录字符串的htaccess重写规则

.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

我已经在谷歌上搜索了一段时间,但似乎找不到解决方案,所以我将直接针对我的问题定制一个问题

我在一个足球/足球网站上工作,并参加了所有比赛。每个数据库行都有一个字段,其中包含一个虚拟文件名,如“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-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