首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重定向.httaccess

重定向.httaccess
EN

Stack Overflow用户
提问于 2019-07-14 22:13:53
回答 1查看 137关注 0票数 0

怎么才能这样重定向?

www.url.com/site/7/index.php => =>

目前使用的.htaccess

代码语言:javascript
复制
RewriteRule ^site/([0-9]+)/([0-9a-zA-Z-_]+)$  packets/index.php?id=$1&url=$2 [L,QSA]

需要httaccess代码以这种方式重定向。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-14 22:20:52

您自己的方法(重写规则)的问题是它与传入的请求不匹配:[0-9a-zA-Z-_]不匹配文字句号(“”).

我想这就是你要找的:

代码语言:javascript
复制
RewriteEngine on
RewriteRule ^/?site/(\d+)/(.+)/?$ /packets/index.php?id=$1&url=$2 [END]

如果使用上面的规则接收到内部服务器错误(http状态500),那么很可能您操作的是apache http服务器的一个非常旧的版本。在这种情况下,您将在http服务器错误日志文件中看到对不支持的[END]标志的明确提示。您可以尝试升级或使用旧的[L]标志,在这种情况下,它可能会同样工作,尽管这在一定程度上取决于您的设置。

此规则同样适用于http服务器主机配置或动态配置文件(".htaccess“文件)。显然,重写模块需要加载在http服务器中,并在http主机中启用。如果使用动态配置文件,则需要注意主机配置中完全启用了它的解释,并且它位于主机的DOCUMENT_ROOT文件夹中。

请注意:与使用动态配置文件(".htaccess")相比,您应该始终倾向于将此类规则放置在http服务器主机配置中。这些动态配置文件增加了复杂性,常常是意外行为的一个原因,很难调试,而且它们确实减慢了http服务器的运行速度。它们仅作为最后一种选择,用于您无法访问真正的http服务器主机配置(阅读:真正便宜的服务提供者)或坚持编写自己的规则的应用程序(这显然是一场安全噩梦)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57031537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档