1

我有一个页面是 www.example.com/page_name.php?var1=dynamic_var1&var2=dynamic_var2

我想使用 .htaccess 文件使它看起来像这样 www.example.com/page_name/dynamic_var1/dynamic_var2

到目前为止我已经尝试过了

RewriteRule ^page_name/(.*)/(.*)$ page_name.php?var1=$1&var2=$2 [NC]

问题是当它进入数据库时​​它是这样的

SELECT * FROM table_name WHERE id=dynamic_var1/dynamic_var2.php/dynamic_var1 LIMIT 1

我也试过这个

RewriteRule page_name/(\w+)/(\w+) page_name.php?var=$1&var2=$2

它正在加载页面,但没有任何图片或 css 文件或任何东西,当我使用 firebug 时,它说它无法加载给定的 URL。

当我尝试这个时

RewriteRule ^page_name/(\w+)/(\w+)$ page_name.php?var=$1&var2=$2

它给了我内部服务器错误

提前致谢,

4

1 回答 1

1

不要尝试从.htaccess文件中拆分 URL。您为什么不尝试简单地将整个查询字符串传递给您index.php或您想要的任何其他脚本并在那里解析请求......

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

一种更简单的方法是将所有请求简单地重定向到一个index.php执行类似操作的文件中 -

index.php-

给定http://yourdomain.com/user/123

$originalURL = $_GET['url'];
$URLParts = explode('/',$originalURL);

现在你有$URLParts

Array (
 'user',
 '123'
)

现在您可以轻松地将这些值放入您的 SQL 查询中。

不过要注意SQL 注入!始终使用mysql_real_escape_string()并确保清理任何传入数据...

于 2012-05-19T15:30:23.503 回答