【问题标题】:htaccess redirect from empty folder to another directoryhtaccess 从空文件夹重定向到另一个目录
【发布时间】:2016-03-23 21:32:21
【问题描述】:

我在www.example.com/ar/carprices 有一个空目录。

我想重定向所有网址

www.example.com/ar/carprices

www.example.com/carprices/ar

我已将以下 .htaccess 放在 www.example.com/ar/carprices 文件夹中,但它不起作用:

RewriteBase /
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule (.*)ar/carprices(.*) $1carprices/ar$2 [L,R=301,NC]

【问题讨论】:

  • 有关通用计算硬件和软件的问题对于 Stack Overflow 来说是题外话,除非它们直接涉及主要用于编程的工具。您或许能够获得有关超级用户的帮助。
  • 此外,还有大约一百万个“我如何编写我的重写规则”问题,问另一个问题似乎真的让你有点厌倦了实际阅读这些问题的任何答案。
  • @MarcusMüller - 我建议你停止评判人们的努力。
  • 对不起,StackOverflow 的核心理念是判断人的努力;甚至有该死的来衡量某人努力的价值!
  • @MarcusMüller 他们衡量积极的努力。不是像“不,'可能不会有数百万个像这样的问题,这'可能'只是另一个问题”。或“让我们关闭 stackoverflow 并进入睡眠吧,因为所有的问题‘可能’都被问过了,我们不需要任何努力来解决新问题”

标签: regex .htaccess mod-rewrite redirect


【解决方案1】:

你也可以在这里使用 RedirectMatch :

RedirectMatch ^/ar/carprices/(.*)$ /carprices/ar/$1

将 /ar/carprices/ 重定向到 /carprices/ar

对于内部 url 重定向,使用:

在 htaccess 中:

RewriteEngine on

RewriteRule ^ar/carprices/(.*)$ /carprices/ar/$1 [NC,L]

htaccess 上下文中的 RewriteRule 中的前导斜杠不匹配,这就是我将其从正则表达式模式中删除的原因。

【讨论】:

  • 好的答案是正确的,但我正在寻找内部重定向。正如浏览器中的 url 保持相同的 '/ar/carprices/' 但在内部它从 '/carprices/ar' 获取
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-07
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多