关于php:Simple Mod_rewrite

Simple Mod Rewrite

我正在尝试创建mod重写以仅打开以下链接:

1
2
/index.php?page=home
/?page=home

变成

1
/home

有人可以告诉我这是怎么做的吗?当我们讨论这个主题时,是否有足够的资源可以阅读有关mod重写的内容?到目前为止,我最大的挣扎是我看不到任何调试方法。事情要么起作用,要么不起作用。


有多种方法可以执行此操作。此规则将规则应用于任何不存在的文件:

1
2
3
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1 [L]

编辑:您可能必须在顶部添加RewriteEngine on,这在Web文档根目录的.htaccess中。当然,所有这些都取决于您的Web主机是否允许使用htaccess(mod_rewrite),以及规则覆盖文件是否应命名为.htaccess。虽然两者都很常见,所以应该不成问题。


据我了解,您希望最终用户输入example.com/home并将其重写为/index.php?home吗?

1
2
3
RewriteEngine On
# /home or / get redirected...
RewriteRule ^(home)?$ /index.php?page=home [L,QSA]

要调试,可以启用RewriteLog。但是,如注释中所建议,它应仅用于调试。最好禁用它或将生产级别设置为非常低。

1
2
3
RewriteLog"/path/to/logs/rewrite.log"
# Increase the log level (default 0, >4 gets pretty verbose)
RewriteLogLevel 3


1
RewriteRule .*\\?page=(\\w+)$ /$1/ [NC]

该如何解决,但也许您可以更具体地说明在哪些情况下需要工作?

这里有一个您可以在htaccess上阅读的网站

http://corz.org/serv/tricks/htaccess2.php