我需要帮助在我的.htaccess文件重定向。我想添加一个字符串到任何在URL的末尾。例如:当有人访问这个URL时:www.mysite.com/example我想把url改写成这样:www.mysite.com/result.html?search=example所以我只需要在URL末尾的任何内容之前添加字符串result.html?search=。这个词的例子只是一个占位符,我需要的任何一个字,是放回那里工作。
www.mysite.com/example
www.mysite.com/result.html?search=example
result.html?search=
zc0qhyus1#
这应该有帮助。
RewriteEngine on RewriteBase / RewriteRule ^page/([^/]+)/? result.html?search=$1
zed5wv102#
根据你的补充评论,我假设这是你实际上在寻找的问题:
RewriteEngine on RewriteRule ^/?(.+)/?$ /result.html?search=$1 [END]
如果你遇到了http状态500(“内部服务器错误”),那么很可能你操作的是一个非常旧的apache http服务器版本。尝试使用[L]标志而不是[END]标志。在这种情况下,你也会在http服务器错误日志文件中找到相应的提示。上述规则在http服务器主机配置和动态配置文件中也同样有效(.htaccess样式文件)。显然,重写模块必须在http服务器中加载并激活。如果您决定使用动态配置文件,则还需要确保http服务器实际上考虑了此类文件。请阅读文件对此。还有一个一般性的提示:你应该总是倾向于将这样的规则放在http服务器(虚拟)主机配置中,而不是使用动态配置文件。(.htaccess样式文件)。众所周知,这些文件容易出错,难以调试,而且会降低服务器的速度。只有在您无法控制主机配置的情况下,才支持将其作为最后一个选项(阅读:真正便宜的托管服务提供商)或者你有一个依赖于编写自己的重写规则的应用程序(这是一个明显的安全噩梦)。
[L]
[END]
.htaccess
2条答案
按热度按时间zc0qhyus1#
这应该有帮助。
zed5wv102#
根据你的补充评论,我假设这是你实际上在寻找的问题:
如果你遇到了http状态500(“内部服务器错误”),那么很可能你操作的是一个非常旧的apache http服务器版本。尝试使用
[L]
标志而不是[END]
标志。在这种情况下,你也会在http服务器错误日志文件中找到相应的提示。上述规则在http服务器主机配置和动态配置文件中也同样有效(
.htaccess
样式文件)。显然,重写模块必须在http服务器中加载并激活。如果您决定使用动态配置文件,则还需要确保http服务器实际上考虑了此类文件。请阅读文件对此。还有一个一般性的提示:你应该总是倾向于将这样的规则放在http服务器(虚拟)主机配置中,而不是使用动态配置文件。(
.htaccess
样式文件)。众所周知,这些文件容易出错,难以调试,而且会降低服务器的速度。只有在您无法控制主机配置的情况下,才支持将其作为最后一个选项(阅读:真正便宜的托管服务提供商)或者你有一个依赖于编写自己的重写规则的应用程序(这是一个明显的安全噩梦)。