【问题标题】:skip a folder name in path while displaying in address bar在地址栏中显示时跳过路径中的文件夹名称
【发布时间】:2011-09-11 06:06:12
【问题描述】:

我希望文件夹名称不在地址栏中显示。示例:隐藏“成员”文件夹:

www.mysite.com/members/jonesmith/index.php

www.mysite.com/members/tome/index.php

www.mysite.com/members/jerry/index.php

...等

我想把这些链接像这样:

www.mysite.com/jonesmith/index.php

www.mysite.com//tome/index.php

www.mysite.com/jerry/index.php

...等

当点击链接时,地址栏将显示相同,即没有“成员”。

我需要这个使成员的页面或网址短。

当然,在会员页面内点击的任何链接都不会在地址栏中显示“会员”。

简而言之:“members”文件夹存在,但不会对所有级别的访问者可见。

有任何使用 php 脚本、javascript、.htaccess ..etc 的想法吗?

【问题讨论】:

  • 只要你不链接它,它就不会显示在地址栏中。有什么复杂的?

标签: php .htaccess url hide


【解决方案1】:

您可以将 .htaccess 与 mod_rewrite 结合使用,通过在 URL 前添加 /members 来重写 URL。

Options FollowSymLinks
RewriteEngine On

RewriteBase /~user

RewriteCond %{REQUEST_URI} !/~user/members/
RewriteRule ^(.*)$ /~user/members/$1 [L]

我想为您的设置删除 ~user 可能会起作用,但我的测试会重写 /~user/a/image.gif -> /~user/members/a/image.gif 之类的路径。

也许更完整的解决方案在以下线程中,如果有人提供包含它的 URL,它会添加一些规则以删除隐藏的子目录: http://www.webmasterworld.com/apache/3588649.htm

【讨论】:

    【解决方案2】:

    如果您使用 Apache,您可以为此使用 mod_rewrite 模块。

    http://httpd.apache.org/docs/current/rewrite/

    我确信 IIS 支持类似的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      相关资源
      最近更新 更多