您好,我需要帮助重定向我的.htaccess文件。我想添加一个字符串到URL的末尾。例如:使用.htaccess文件将字符串添加到url
当有人访问这个网址:
www.mysite.com/example
我想重写URL这样说:
www.mysite.com/result.html?search=example
所以我只需要添加字符串result.html?search=
之前,无论是在网址的末尾。
这个词的例子只是一个占位符,我需要放在那里工作的任何单词。
谢谢!
您好,我需要帮助重定向我的.htaccess文件。我想添加一个字符串到URL的末尾。例如:使用.htaccess文件将字符串添加到url
当有人访问这个网址:
www.mysite.com/example
我想重写URL这样说:
www.mysite.com/result.html?search=example
所以我只需要添加字符串result.html?search=
之前,无论是在网址的末尾。
这个词的例子只是一个占位符,我需要放在那里工作的任何单词。
谢谢!
这应该会有帮助。
RewriteEngine on
RewriteBase/
RewriteRule ^page/([^/]+)/? result.html?search=$1
对我来说,问题实际上读取不同的,这就是为什么我更喜欢发表任何答案... – arkascha
之前问@ arkascha你所说的话也是有道理的,可以从不同的角度来看待问题,但我认为这是他在这里想要达到的目标。让我们再来澄清一下。 –
根据您的附加评论我想这是你实际上是在寻找这样一个问题:
RewriteEngine on
RewriteRule ^/?(.+)/?$ /result.html?search=$1 [END]
如果您遇到了这一原则,HTTP状态500(“内部服务器错误”),那么你有可能会运行一个非常旧的apache http服务器版本。尝试使用[L]
标志,而不是[END]
标志。在这种情况下,你也会在你的http服务器错误日志文件中找到相应的提示。
上述规则在http服务器主机配置和动态配置文件(.htaccess
样式文件)中同样适用。显然重写模块必须在http服务器上加载并激活。如果您决定使用动态配置文件,那么您还需要确保这些文件实际上是由http服务器考虑的。阅读有关该文档的AllowOverride
指令。
还有一个常规提示:你应该总是喜欢在http服务器(虚拟)主机配置中放置这样的规则,而不是使用动态配置文件(.htaccess
样式文件)。这些文件出了名的错误,很难调试,他们真的放慢了服务器。它们只支持作为的情况下最后的选择,你没有对主机配置控制(读:真的很便宜的托管服务提供商),或者如果你有依赖于写自己的重写规则(这是一个明显的安全恶梦的应用)。
辉煌:)尽管只是假设,你的答案有很多深度。 –
感谢您的回答,但我得到了一个500错误['L]'和'[END]'我从你的答案中学到了很多东西,尽管如此谢谢! –
@cup_of最有可能的原因是重写模块根据您的评论而被_not_加载......如前所述:您应该查看您的http服务器错误日志文件。这是您可以阅读有关服务器遇到的问题的更详细的内部信息的地方。 – arkascha
对不起,但你不清楚你实际要求什么。请在你的问题精确:这两个变种是_external_ URL实际上是由客户端(浏览器)要求什么_internal_资源它应该被改写成?你的例子读起来有点像你正在寻找重定向,而不是重写。 – arkascha
客户端请求的网址是'www.mysite.com/example',内部资源应重写为'www.mysite.com/result.html?search = example' –
示例是文件夹或文件? –