我想知道,我如何才能正确使用php的函数mode_rewrite。
我目前正在开发xampp。我在httpd.conf文件中激活了LoadModule rewrite_module modules/mod_rewrite.so
。
我还编辑了以下几行:
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
</Directory>
在我的.htaccess文件中,我有以下代码:
RewriteEngine On
RewriteRule ^([^/]*)\.html$ /?m=$1 [L]
因此,应将?m=start
更改为?start.html
。
当我现在打开localhost/page/start.html
时,它只显示“它有效”。但为什么不向我展示localhost/page/?m=start
的内容?
另一个问题是,如何更改重写规则,我可以通过localhost/page/?m=start&set=update
访问localhost/page/start/update.html
?
谢谢你的回答!
答案 0 :(得分:1)
您在替换中使用绝对路径/
。因此,当在/page/
的.htaccess文件中使用此规则时,/page/start.html
的请求实际上会被重写为/?m=start
而不是/page/?m=start
。
尝试使用相对路径:
RewriteRule ^([^/]*)\.html$ ./?m=$1 [L]