如何进行目录重定向

Posted

技术标签:

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

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

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

【问题讨论】:

.htaccess 是一个很好的起点。请显示您的 .htaccess 文件的内容,并具体描述您想要发生的事情以及出了什么问题。 就像我说的,我没有这样做的经验,我只看到过使用预制文件夹的示例,例如制作 /resume/ 转到 resume.pdf 等。 【参考方案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 模块,需要在服务器端配置。至于不重复内容,请查看:***.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/

我为我糟糕的英语道歉

希望对你有帮助

【讨论】:

以上是关于如何进行目录重定向的主要内容,如果未能解决你的问题,请参考以下文章

如何仅重定向子目录而不重定向内容?

如何在nginx创建临时重定向和永久重定向

如何使用modelandview进行重定向

java WEB如何创建response,从而进行页面重定向

如何在不使用电子锻造重定向到根目录的情况下进行热重装并做出反应

我可以使用根 web.config 对某些目录进行全局重定向吗?