在地址栏中显示时跳过路径中的文件夹名称
Posted
技术标签:
【中文标题】在地址栏中显示时跳过路径中的文件夹名称【英文标题】: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 的想法吗?
【问题讨论】:
只要你不链接它,它就不会显示在地址栏中。有什么复杂的? 【参考方案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 支持类似的东西。
【讨论】:
以上是关于在地址栏中显示时跳过路径中的文件夹名称的主要内容,如果未能解决你的问题,请参考以下文章