【问题标题】:htaccess fake folderhtaccess 假文件夹
【发布时间】:2012-07-03 17:48:21
【问题描述】:

我有一个可以创建网络的站点,但我无法创建一个假文件夹。

普通网址;

mysite.com/profile.php?id=123&network=stackoverflow

我想要的是

mysite.com/stackoverflow/profile.php?id=123

另一个例子

普通网址;

mysite.com/home.php?network=stackoverflow

我想要的是

mysite.com/stackoverflow/home.php

这个的htaccess代码是什么? 感谢您的帮助

【问题讨论】:

  • 我不熟悉 mod_rewrite 规则,但是如果您使用的是 Apache,则需要查看 mod_rewrite。
  • err...“假文件夹”不是正确的术语。它被称为“URL重写”:)

标签: php .htaccess


【解决方案1】:

试试这个:

RewriteRule ^([^\/]+)/(.*)$ /$2?network=$1 [QSA,L]

这需要

yoursite.com/anything_up_to_the_slash/anything.php?anything=anything

然后改写成

yoursite.com/anything.php?anything=anything&network=anything_up_to_the_slash

【讨论】:

  • 这会有安全隐患
  • 您认为这会带来哪些安全隐患?
  • yoursite.com/private-folder/index.php?variable=testing-value。至少对于Steven's answer,有一个有限的可能允许值列表(home|profile)。防止域探测....
【解决方案2】:

在 htaccess 中,你需要这样的规则:

 RewriteRule ^stackoverflow/(home|profile).php /$1.php?network=stackoverflow [QSA,L]

请注意,QSA 修饰符将确保传入 url 的任何参数都将传入重写后的 url。

【讨论】:

    猜你喜欢
    • 2015-07-10
    • 2017-11-03
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 2014-06-23
    • 2015-03-19
    • 2016-10-29
    相关资源
    最近更新 更多