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