Apache .htaccess工作不正常-获取变量
我有(可能)很容易解决的问题。我的simple.htaccess无法按我所希望的方式工作,而且我无法了解发生了什么 .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就像我去` 这可
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=