通过.htaccess传递可选的查询variables

哦,.htaccess伤了我的头。

所以,我有一个网页有一个漂亮的urlfoo.com/radio/jobs,虽然实际上住在foo.com/content/directory_jobs.php/?section=radio

我用一个.htaccess行来实现这个…

RewriteRule ^(radio|tv|magazines|newspapers)/jobs$ /content/directory_jobs.php?section=$1 

这个页面有一个可选的页面=查询string – 所以你可以去foo.com/radio/jobs?page=2看到第二页。

但是,上面的.htaccess行不会添加这个页面variables:其结果是底层PHP脚本没有看到“页面”variables。

我可以调整上面的.htaccess行以确保我传递一个“页”variables,如果它存在? 还是我必须有这样的每个页面两个.htaccess行?

只需添加QSA(查询string附加)标志

 RewriteRule ^(radio|tv|magazines|newspapers)/jobs$ /content/directory_jobs.php?section=$1 [QSA] 

例;
用QSA旗帜/电台/作业 – > /content/directory_jobs.php?section=jobs
/ radio / jobs?foo = bar – > /content/directory_jobs.php?section=jobs&foo=bar
/ radio / jobs?foo = bar&boo = bosh – > /content/directory_jobs.php?section=jobs&foo=bar&boo=bosh
mod_rewrite会弄清楚是否需要添加一个? 或重写规则为$

RewriteRule ^([az] +)$ /$1.php [QSA]

/ something?foo = bar – > /something.php?foo=bar