1

这是我在这里的第一个问题,所以提前谢谢大家,也很抱歉我的英语不好。

我正在尝试将 htaccess 和重写应用到我正在处理的一个项目中,但问题是我以前从未这样做过。我一直在阅读很多帖子(例如http://corz.org/serv/tricks/htaccess2.php或这个http://www.the-art-of-web.com/system/rewrite/1 /#.UW7mHqJhXCd)和有关此的文章,但结合以前没有关于正则表达式的经验,我无法完成......

我已经用了 2 天了,我已经没有时间完成它了,所以我想知道是否有人可以帮我一把,所以这里是:


我有的:

我根目录下的 3 个文件:index.php home.php 404.php

在数据库上:在用户表上有一个名为 user_url 的字段

如何工作:

我想像这样 www.example.com/user_url 显示每个用户的个人页面

我现在正在这样做 www.example.com/?id=user_url

但在某些情况下,我也需要它能够直接访问文件,例如使用 home.php 而不必制作类似 ?id=home 的东西


4

1 回答 1

2

尝试将这些规则添加到文档根目录中的 htaccess 文件中,最好在执行其他类型路由的规则之上:

Options -Multiviews
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /index.php?id=$1 [L,QSA]

就这点而言:

但在某些情况下,我也需要它能够直接访问文件,例如使用 home.php 而不必制作类似 ?id=home 的东西

我不知道你在说什么。如果您的意思是您不想将http://www.example.com/home.php其重写为/index.php?id=home.php,那么这就是上述两个条件的作用。

于 2013-04-17T20:56:21.873 回答