Mod_rewrite将所有内容转发给index.php的params

时间:2010-09-18 04:13:36

标签: apache mod-rewrite

除了将文件重写为index.php的参数外,我怎样才能得到任何东西?我正在使用apache,mod_rewrite等。

2 个答案:

答案 0 :(得分:6)

如果你想重写任何不是普通文件请求的东西,我会用它:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{DOCUMENT_ROOT}/index\.php -f
    RewriteRule ^(.*)$  /index.php?page=$1 [QSA]
</IfModule>

通过这种方式,您无需担心自己是否遵循某种URL格式进行重写 - 您可以在服务脚本中进行相应的测试和操作。

答案 1 :(得分:0)

试试这个:

RewriteRule /([^/]*)/([^/]*)/([^/]*)[^\.].*  /index.php?var1=$1&var2=$2&var3=$3 [R=301]

这会将/foo/bar/baz之类的网址重定向到/index.php?var1=foo&var2=bar&var3=baz