【问题标题】:Masking the folder name in the url using htaccess使用 htaccess 屏蔽 url 中的文件夹名称
【发布时间】:2012-11-21 22:20:23
【问题描述】:

我正在尝试让我的新版本网站上线。我已经设置并测试了 301 以将文件从 www.example.com/shop 定向到 www.example.com/test。我现在唯一需要做的就是让 url 只显示 www.example.com 而没有 /test。就链接结构而言,我真的不想要这个额外的文件夹。

我觉得我快要接近了,但我已经做了好几天了,但似乎无法让它发挥作用!有人可以帮忙吗?

更新!

生成 SEO 友好 URL 的软件是否可能导致冲突?这可能是我无法在 URL 中实现 www.example.com 而不是 www.example.com/test 的原因吗?

编辑

与配置文件发生冲突,这就是我无法让代码工作的原因。感谢您的帮助。

【问题讨论】:

  • 我什么都试过了。翻遍了这里的每一篇关于它的帖子,但仍然没有快乐。这实际上是 8 个月工作的最后一步,有人可以帮忙!
  • 我觉得 ^(.*)$ test/$1 [L,NC] 应该可以工作,但它没有。
  • 对不起,我对你想要做什么有点困惑。您是否尝试将 www.example.com/shop 重定向到 www.example.com/ ?如果这不是您想要的,请准确描述您想要实现的目标。
  • 对不起,如果我没有很好地解释自己。我的旧站点 /shop 有 301 重定向到新站点 /test,这工作得很好。我需要实现的是在 URL 中隐藏 /test,使其仅显示为 www.example.com。我的所有尝试都失败了,我要么最终没有隐藏文件夹名称,要么如果我可以隐藏文件夹名称,我会收到 404 错误。

标签: .htaccess mod-rewrite


【解决方案1】:

在 HTTACES 中

RewriteEngine On 
RewriteRule ^something\/?$ \/something\/else\/ 

【讨论】:

  • 感谢您的回复。您发送的代码是用于重命名文件夹吗? IE。从 www.example.com/test 到 www.example.com/shop?我不想重命名文件夹。我需要的是它不会在 URL 中显示 /test。
  • example awww.yahoo.com\/?$ www.yahoo.com 所有的 url 都将被重写并显示为 www.yahoo.com
  • 您能否用我自己的示例中的内容替换其他内容,因为我不明白您的意思。谢谢
【解决方案2】:

如果要运行位于根目录下test/ 子文件夹中的应用程序,请使用以下重写规则并将它们放在根文件夹.htaccess 中:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^test/
RewriteRule ^(.*)$ /test/$1 [L,QSA]

然后请求:

http://www.example.com/yourscript.php
http://www.example.com/css/style.css
http://www.example.com/images/logo.png

将显示来自(如果它们不存在于上述位置)的结果:

http://www.example.com/test/yourscript.php
http://www.example.com/test/css/style.css
http://www.example.com/test/images/logo.png

【讨论】:

  • 我有 301 可以从商店重定向到测试 - 效果很好。隐藏文件夹名称是我遇到的问题 - 发生两件事之一,要么重定向到测试,但文件夹名称没有隐藏,仍然显示为 www.example.com/test。或者它重定向到测试,隐藏文件夹名称但找不到页面并显示 404 错误。
  • @Amy 所以你想帮助你的'/shop/'目录中.htaccess的内容,这将使服务器使用你在`/test/'中的测试版本的商店?这是你想要的吗?
  • 从 /shop 重定向到 /test 的 301 已在 .htaccess 中设置并且运行良好。我遇到的唯一问题是在 URL 中隐藏文件夹名称,使其显示为 www.example.com 而不是 www.example.com/test。我已经尝试过上面的代码,但不是显示页面,而是保留 URL www.example.com/test 或显示 404。
  • @Amy 所以你想让网站www.example.com 像在www.example.com/test 上一样工作吗?我还是不明白你的网站目录结构
  • 旧站点是 www.example.com/shop,它位于子文件夹 shop 中。新站点 www.example.com/test 位于子文件夹 test 中,并且都在同一个父目录下。我设置了 301 以将流量从商店重定向到 .htaccess 中的测试,效果很好。尽管付出了很多努力,但我似乎无法在 URL 中隐藏文件夹 /test。这更清楚了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-17
  • 1970-01-01
  • 2019-09-20
  • 2016-04-13
  • 1970-01-01
相关资源
最近更新 更多