Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
Apache .htaccess工作不正常-获取变量_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Apache .htaccess工作不正常-获取变量

Apache .htaccess工作不正常-获取变量,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有(可能)很容易解决的问题。我的simple.htaccess无法按我所希望的方式工作,而且我无法了解发生了什么 .htaccess: RewriteEngine On RewriteRule ^([^/]*)/$ /index.html?sport=$1 [L] 然后当我转到http://domain.com/soccer/然后在控制台中运行这一行:window.location.search.replace(“?”,”)它什么也没给我,但它应该给我sport=soccer就像我去` 这可

我有(可能)很容易解决的问题。我的simple.htaccess无法按我所希望的方式工作,而且我无法了解发生了什么

.htaccess:

RewriteEngine On
RewriteRule ^([^/]*)/$ /index.html?sport=$1 [L]
然后当我转到
http://domain.com/soccer/
然后在控制台中运行这一行:
window.location.search.replace(“?”,”)它什么也没给我,但它应该给我
sport=soccer
就像我去`

这可能很简单,但是.htaccess对我来说完全是个谜

问题: 当人们输入时,我如何使重写工作如此有效

domain.com/soccer/
将完全按照以下方式工作:

domain.com/index.html?sport=soccer
一些简单的解释(不是必需的)会有很大帮助,所以也许我最终能理解。htaccess


cheers

如果不使用查询字符串将客户端重定向到URL,则无法访问javascript中的参数。 您可以使用addind
[R]
将用户重定向到您的重写规则:

RewriteEngine On
RewriteRule ^([^/]*)/$ /index.html?sport=$1 [L,R]
工作原理:以URI为例,例如
/soccer/
。剥去前导线/并将其与图案进行比较。在模式中,抓取所有内容(0个或更多字符),直到遇到/(此处不捕获/)。这被计入1美元,应该是足球。要求输入以/结尾。请注意
http://domain.com/soccer
将不匹配,因为它没有尾随/。您可能希望使该尾随/可选:

RewriteRule ^([^/]*)/?$ /index.html?sport=$1 [L]
现在您已经成功地匹配了模式并获得了$1,请输出重写的URI,用soccer替换$1:

/index.html?sport=soccer
[L]
标志表示这是目前最后一条重写规则

请注意,在模式中使用*作为重复计数。如果有人输入
http://domain.com/
,它将匹配,您将得到一个空$1,导致

/index.html?sport=
可能会破裂。您可能希望从*(0个或多个匹配项)更改为+(1个或多个匹配项)


index实际上是index.php还是其他脚本?HTML本身无法处理查询字符串。您也可以在此处提供正确的文件名,而不是继续重写。

索引实际上是index.html,并且有一个预加载javascript,根据不同的运动预加载不同的图像集(稍后在画布上的某些像素操作中使用)。
/index.html?sport=