Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.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文件向url添加字符串_.htaccess - Fatal编程技术网

使用.htaccess文件向url添加字符串

使用.htaccess文件向url添加字符串,.htaccess,.htaccess,您好,我需要有关在.htaccess文件中重定向的帮助。我想在url末尾添加一个字符串。例如: 当有人转到此url时: www.mysite.com/example 我想重写url,这样说: www.mysite.com/result.html?search=example 所以我只需要在url末尾的任何内容之前添加字符串result.html?search= 单词示例只是一个占位符,我需要任何放回那里的单词来工作 谢谢 这应该会有帮助 RewriteEngine on RewriteBase

您好,我需要有关在.htaccess文件中重定向的帮助。我想在url末尾添加一个字符串。例如:

当有人转到此url时:

www.mysite.com/example

我想重写url,这样说:

www.mysite.com/result.html?search=example

所以我只需要在url末尾的任何内容之前添加字符串
result.html?search=

单词示例只是一个占位符,我需要任何放回那里的单词来工作


谢谢

这应该会有帮助

RewriteEngine on 
RewriteBase /

RewriteRule ^page/([^/]+)/? result.html?search=$1

这应该是有帮助的

RewriteEngine on 
RewriteBase /

RewriteRule ^page/([^/]+)/? result.html?search=$1

根据您的补充意见,我认为这是您实际寻找的问题:

RewriteEngine on
RewriteRule ^/?(.+)/?$ /result.html?search=$1 [END]
如果您使用该规则遇到http状态500(“内部服务器错误”),那么很可能您操作的是非常旧版本的apache http服务器。尝试使用
[L]
标志,而不是
[END]
标志。在这种情况下,您也会在http服务器错误日志文件中找到相应的提示

上述规则同样适用于http服务器主机配置和动态配置文件(
.htaccess
样式文件)。显然,必须在http服务器中加载并激活重写模块。如果您决定使用动态配置文件,那么您还需要确保http服务器实际考虑了这些文件。阅读相关文档中的
AllowOverride
指令


还有一个一般提示:您应该始终希望将此类规则放置在http服务器(虚拟)主机配置中,而不是使用动态配置文件(
.htaccess
样式文件)。这些文件是出了名的容易出错,难以调试,而且它们确实降低了服务器的速度。只有在您无法控制主机配置的情况下(读:非常便宜的主机服务提供商),或者如果您的应用程序依赖于编写自己的重写规则(这显然是一个安全噩梦),才支持将它们作为最后一个选项.

根据您的补充意见,我认为这是您实际寻找的问题:

RewriteEngine on
RewriteRule ^/?(.+)/?$ /result.html?search=$1 [END]
如果您使用该规则遇到http状态500(“内部服务器错误”),那么很可能您操作的是非常旧版本的apache http服务器。尝试使用
[L]
标志,而不是
[END]
标志。在这种情况下,您也会在http服务器错误日志文件中找到相应的提示

上述规则同样适用于http服务器主机配置和动态配置文件(
.htaccess
样式文件)。显然,必须在http服务器中加载并激活重写模块。如果您决定使用动态配置文件,那么您还需要确保http服务器实际考虑了这些文件。阅读相关文档中的
AllowOverride
指令


还有一个一般提示:您应该始终希望将此类规则放置在http服务器(虚拟)主机配置中,而不是使用动态配置文件(
.htaccess
样式文件)。这些文件是出了名的容易出错,难以调试,而且它们确实降低了服务器的速度。只有在您无法控制主机配置的情况下(阅读:非常便宜的主机服务提供商),或者如果您的应用程序依赖于编写自己的重写规则(这是一个明显的安全噩梦),才支持将其作为最后一个选项。

抱歉,但不清楚您实际要求的是什么。请准确回答您的问题:这两个变体中的哪一个是客户端(浏览器)实际请求的外部URL,以及应该将其重写到哪些内部资源?您的示例读起来有点像是在寻找重定向,不是重写。客户端请求的url是
www.mysite.com/example
,内部资源应该重写为is
www.mysite.com/result.html?search=example
example是文件夹还是文件?@MohammedElhag example是一个查询字符串,将被抓取并放入函数中,所以我猜不是文件就是文件夹对不起,但不清楚你到底问了什么。请准确回答您的问题:这两个变体中的哪一个是客户端(浏览器)实际请求的外部URL,以及应该将其重写到哪些内部资源?您的示例读起来有点像是在寻找重定向,不是重写。客户端请求的url是
www.mysite.com/example
,内部资源应该重写为is
www.mysite.com/result.html?search=example
example是文件夹还是文件?@MohammedElhag example是一个查询字符串,将被抓取并放入函数中,所以我想无论是文件还是文件夹对我来说,这个问题实际上读起来都不一样,这就是为什么我宁愿在发布任何答案之前提问…@arkascha你所说的也有道理,这个问题可以从不同的角度来看,但我想这就是他在这里试图实现的目标。让我们寻求更多的澄清。对我来说,这个问题实际上读起来不一样,这就是为什么我宁愿在发布任何答案之前提问…@arkascha你所说的也有道理,这个问题可以从不同的角度来看,但我认为这正是他在这里试图实现的目标。让我们寻求更多的澄清。精彩:)尽管只是假设,你的答案有很多深度。谢谢你的回答,但我在
[L]
[END]
两个方面都有500个错误,不过我从你的答案中学到了很多,谢谢@最可能的原因是重写模块没有根据您的评论加载。。。如前所述:您应该查看http服务器错误日志文件。在这里,您可以阅读有关该问题的更详细的内部信息