Dropbox 风格的 URL,不使用哈希或参数
Posted
技术标签:
【中文标题】Dropbox 风格的 URL,不使用哈希或参数【英文标题】:Dropbox style URL, without using hashes or params 【发布时间】:2014-02-08 10:17:30 【问题描述】:有人能指出我正确的方向吗?我正在尝试创建一个如下所示的网址。我不想使用 url 哈希 #I2QT40oSwU0AoH7g02cAHI
或参数 ?myparam=I2QT40oSwU0AoH7g02cAHI
。
https://www.dropbox.com/l/I2QT40oSwU0AoH7g02cAHI
这是用 mod_rewrite 完成的吗?
非常感谢!
【问题讨论】:
【参考方案1】:是的,这是通过编辑 httpd.conf 文件(打开 AllowOverride all)并在您的 Web 根目录中创建一个 .htaccess 文件来完成的。
这是一个示例 .htaccess 文件
Options -Multiviews
RewriteEngine On
RewriteBase /
RewriteRule ^l/(.*)$ /somescript.php?key=$1 [L]
以上将直接
https://www.dropbox.com/l/I2QT40oSwU0AoH7g02cAHI
到
https://www.dropbox.com/somescript.php?key=I2QT40oSwU0AoH7g02cAHI
【讨论】:
我不会在 httpd.conf 中全局启用“AllowOverride all”。你必须明白你在做什么。这是安全功能。阅读here @eduard 这是一项安全功能,可在攻击者访问您的 .htaccess 文件时保护恶意恶意行为。如果你不打开它,那么你就不能通过 Apache 重写 URL。如果您确实打开了它,并且攻击者可以访问您的根目录(因此是 .htaccess 文件),那么您需要担心的事情比 URL 被重定向的大得多【参考方案2】:它被称为Clean URL 通常它是通过url重写技术实现的。但也可以使用 404 HTTP 错误页面来处理此类 url。
【讨论】:
【参考方案3】:是的! mod 重写正是您正在寻找的。你可以在这里玩这个生成器:http://www.generateit.net/mod-rewrite/index.php
解决办法如下:
在您的根目录中放置一个 .htaccess,并将其添加到其中。当用户进入时
http://domain.com/l/I2QT40oSwU0AoH7g02cAHI
它将在服务器上执行这个“隐藏”
http://domain.com/index.php?myparam=I2QT40oSwU0AoH7g02cAHI
添加这个:
RewriteEngine On
# /l/ trick
RewriteRule ^l/([^/]*)$ /index.php?myparam=$1 [L]
【讨论】:
以上是关于Dropbox 风格的 URL,不使用哈希或参数的主要内容,如果未能解决你的问题,请参考以下文章
如何使用传入的图像 URL 将图像从 iOS 上传到 DropBox?
使用新 URL 更新地址栏而不使用哈希或重新加载页面 [重复]