我想重写一个链接,以显示另一个url在肚脐,但它始终失败的罗马原因。
old url: http://subdomain.domain.be/external/pdfjs-2.1.266-dist/web/viewer.html
新网址: http://subdomain.domain.be/example
我原以为这会奏效,但似乎出了点问题。
RewriteRule ^external/pdfjs-2\.1\.266-dist/web/viewer\.html$ /example?&%{QUERY_STRING}提前谢谢你的帮助。
发布于 2019-12-09 12:55:03
正如@04FS在对这个问题的评论中所思考的那样,这个问题读起来好像你是以错误的方式对待这个问题的。
如果/example是这样分发的,那么实际上是由客户机请求的,那么您需要在内部重写它。以便将传入的请求映射到现有的内部资源上:
RewriteEngine on
RewriteRule ^/?example$ /external/pdfjs-2.1.266-dist/web/viewer.html [END]如果使用上面的规则接收到内部服务器错误(http状态500),那么很可能您操作的是apache http服务器的一个非常旧的版本。在这种情况下,您将在http服务器错误日志文件中看到对不支持的[END]标志的明确提示。您可以尝试升级或使用旧的[L]标志,在这种情况下,它可能会同样工作,尽管这在一定程度上取决于您的设置。
此实现同样适用于http服务器主机配置或动态配置文件(".htaccess“文件)。显然,重写模块需要加载在http服务器中,并在http主机中启用。如果使用动态配置文件,则需要注意主机配置中完全启用了它的解释,并且它位于主机的DOCUMENT_ROOT文件夹中。
请注意:与使用动态配置文件(".htaccess")相比,您应该始终倾向于将此类规则放置在http服务器主机配置中。这些动态配置文件增加了复杂性,常常是意外行为的一个原因,很难调试,而且它们确实减慢了http服务器的运行速度。它们仅作为最后一种选择,用于您无法访问真正的http服务器主机配置(阅读:真正便宜的服务提供者)或坚持编写自己的规则的应用程序(这显然是一场安全噩梦)。
https://stackoverflow.com/questions/59245832
复制相似问题