【问题标题】:convert nginx redirect to .htaccess apache (drupal 7)将 nginx 重定向转换为 .htaccess apache(drupal 7)
【发布时间】:2016-08-31 09:27:16
【问题描述】:

我必须在 .htaccess 中重定向网址:

原文:/mobile/blog/
重定向:/blog/
我试过了:
RewriteCond %{REQUEST_URI} ^/mobile/blog/
RewriteRule ^mobile/blog/(.*)$ /blog/$1 [R=301,L]

没有成功。
我也有这些需要在 .htaccess 中的 nginx 重定向。

rewrite ^/items/(.+)/(.*) /search/$2 permanent;
rewrite ^/items/(.*) /search/$1 permanent;
rewrite ^/topic/onlyon $scheme://$host/tags/onlyon permanent;

感谢任何帮助和文档。

【问题讨论】:

  • 为什么要从 nginx 切换到 apache?
  • 这超出了我的工资等级。

标签: apache .htaccess redirect nginx drupal-7


【解决方案1】:

由于 Drupal 有时会更新 .htaccess 文件并且 Drupal 经常在内部维护一组重定向,因此使用 Redirect module 处理重定向通常是有意义的。

也就是说,如果您需要或想要在 .htaccess 中进行重定向,您可以这样做。第一个重定向可以不用重写,可以使用Apache's redirect directive

Redirect permanent /oldlocation /newlocation

要使用重写移动目录中的所有内容,您可以使用以下内容:

RewriteRule ^items(/.*)?$ /search/$1

另见:Apache rewrite rule for whole directory

【讨论】:

  • 谢谢。 apache重定向有效。但我不明白的是重写规则不起作用。是因为 Drupal 并没有真正的文件夹而是节点吗? (我是 Drupal 的新手可能是一个新手推理)
  • .htaccess 指令发生在 Drupal 运行之前,因此 Drupal 的结构只有在您需要检查文件/节点是否存在时才重要(然后您必须确保存在文件或在重定向模块或类似模块中进行重定向)。重写失败的原因 #1:mod_rewrite 未在服务器上运行。原因 #2 重写匹配模式错误。
猜你喜欢
  • 2015-05-21
  • 2011-11-25
  • 2021-11-26
  • 2012-02-25
  • 1970-01-01
  • 2020-12-23
  • 2020-09-22
  • 1970-01-01
  • 2011-04-16
相关资源
最近更新 更多