【问题标题】:How to do a directory redirect如何进行目录重定向
【发布时间】:2015-01-31 10:28:03
【问题描述】:

我看到网站的个人资料页面会执行诸如“http://www.example.com/myusername/”之类的操作,向用户名“myusername”的人显示个人资料。我想知道如何做到这一点?

我已经看到了有关如何使用 htaccess 执行此操作的示例,但它执行完全重定向,不允许发布数据、获取数据等。我该怎么做?

【问题讨论】:

  • .htaccess 是一个很好的起点。请显示您的 .htaccess 文件的内容,并具体描述您想要发生的事情以及出了什么问题。
  • 就像我说的,我没有这样做的经验,我只看到过使用预制文件夹的示例,例如制作 /resume/ 转到 resume.pdf 等。

标签: php .htaccess


【解决方案1】:

使用 .htaccess 的 mod_rewrite 选项创建重写,以维护查询字符串和/或发布的数据。一个简单的例子(取自 CodeIgniter):

RewriteEngine on
RewriteCond $1 !^(index\.php|[Javascript / CSS / Image root Folder name(s)]|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

这意味着所有请求都转到 index.php 并且您的 index.php 脚本将被设置为将该 URL 解析为适当的类和/或函数。这允许由系统管理的单个入口点。这被所有主要系统使用,从 Wordpress 到 Magento 到 Laravel 4 到 CodeIgniter。

【讨论】:

  • 500 内部服务器错误 我完全按照您发布的方式复制了它,我明白了。难道是我没有robots.txt?
  • Mod_rewrite 是一个 Apache 模块,需要在服务器端配置。至于不重复内容,请查看:stackoverflow.com/a/3131259/3525315
【解决方案2】:

.htaccess 允许使用类似目录的样式在查询字符串中“发布”(正确的词是 GET)数据 您必须激活 RewriteEngine,然后编写一个规则以将您的页面预期的查询字符串转换为目录样式的 sintax,为了编写这些规则,您必须使用一些正则表达式来映射 url 中将被识别的元素作为你查询字符串的变量和各自的值

例如 如果你想重写这样的查询字符串:

www.sitename.com/showimages.php?album=sea&photo=mysurf    

在这样的查询中:

www.sitename.com/sea/mysurf

你必须写下顺序规则:

 RewriteEngine on
 RewriteRule ^([a-z0-9]+)/([a-z0-9]+)/?$ /showimages.php?album=$1&photo=$2 [NC,L]     

这里有一个有趣且简单的“.htaccess URL 重写”指南http://edward-designer.com/web/htaccess-url-rewrite-simplified/

我为我糟糕的英语道歉

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2021-04-14
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 2013-02-22
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    相关资源
    最近更新 更多