【问题标题】:.htaccess mod rewrite automatically using php or something?.htaccess mod 使用 php 或其他东西自动重写?
【发布时间】:2010-12-31 03:28:05
【问题描述】:
【问题讨论】:
标签:
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”需要做什么。例如查询数据库映射路径到函数名并返回函数名。
当然还有更多,但这就是想法。
【解决方案4】:
使用 RewriteMap 指令调用适当转换 URL 的脚本。