【问题标题】:.htaccess mod rewrite automatically using php or something?.htaccess mod 使用 php 或其他东西自动重写?
【发布时间】:2010-12-31 03:28:05
【问题描述】:

我有很多用户,每个用户的网站页面都像http://www.mysite.com/folder/artist_id.php?id=33

用户需要能够设置自己的简单 URL,例如 http://www.mysite.com/userguy,以便重定向到上述页面。

我知道如何使用 RewriteRule 在 .htaccess 中手动写出这些,但是,例如,用户有一个使用 php 和 javascript 创建的整个控制面板,因此有必要允许他们自己选择名称并自动输入代码.但是我不知道是否已经有一种简单的方法来设置它或通过代码添加到.htaccess文件中,或者我是否应该打开某种文件,重写东西,或者什么是安全的。

顺便说一句,我不担心他们将自己命名为与我网站中现有文件夹或 php 文件相同的问题。用户是有限的并且需要获得批准,所以这不应该是一个问题。

【问题讨论】:

    标签: php web-applications .htaccess mod-rewrite


    【解决方案1】:

    或者,重新设计您的数据库以处理自然键而不是数字键。
    这将保存您所有的 url 解映射 33 = userguy 等,您的 url 将更加友好、可猜测和 seo 友好,并且浏览您的数据库将更容易启动。

    用户名(PK)

    【讨论】:

      【解决方案2】:

      不涉及使用 PHP 打开、修改和保存 .htaccess 文件的适当解决方案将使用各种“路由器”。考虑以下几点:

      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
      

      它的作用是将 /userguy 之类的内容重写为 /index.php?q=userguy,但前提是 /userguy 不是文件系统中存在的目录或文件。这对用户是透明的。然后 index.php 将负责执行以下操作:

      $path = $_GET['q'];
      // Get router information using the $path variable.
      $callback = get_callback_by_path($path);
      // Assuming $callback is a function name. The function would print
      // the page HTML or call into a theme layer or do whatever it needs to do.
      call_user_func($callback);
      

      函数get_callback_by_path 将是自定义逻辑,它会做任何需要做的事情来确定“userguy”需要做什么。例如查询数据库映射路径到函数名并返回函数名。

      当然还有更多,但这就是想法。

      【讨论】:

        【解决方案3】:

        您可以设置一个重写规则,将所有请求(如 http://www.mysite.com/userguy)发送到一个 php 脚本,然后由该脚本执行“翻译”。不一定必须通过重写规则来完成,也可以是ErrorDocument handler。在这种情况下,原始请求路径可以在 $_SERVER['REQUEST_URI'] 中找到。

        【讨论】:

          【解决方案4】:

          使用 RewriteMap 指令调用适当转换 URL 的脚本。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-09-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-08-22
            • 2015-12-06
            相关资源
            最近更新 更多