HTACCESS使用get变量重写

时间:2012-09-12 20:10:16

标签: php .htaccess

我有一个子目录,里面有一堆.php文件。我目前将此作为我的.HTACCESS来干净地重写网址。

RewriteEngine on
Options +FollowSymLinks
RewriteBase /mailing_list

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

这很好,因为它会http://www.example.com/mailing_list/home变为http://www.example.com/mailing_list/home.php

我还需要考虑的是使用干净网址获取变量的页面。该页面称为w.php,它传递?i=(int)

当我尝试访问http://www.example.com/mailing_list/w/1时,我收到505服务器错误。我需要添加到我的htaccess中来解释这个问题?是否有完整的证明方式可以解释我遇到的其他人。例如:

如果页面出现在名为博客的页面上,并且它会像这样传递博客的ID,那该怎么办:http://www.example.com/mailing_list/blog/1

我是否必须专门为该页面添加新规则?

1 个答案:

答案 0 :(得分:0)

替换

RewriteRule ^(.*)$ $1.php

通过

RewriteRule ^([^/]+)$ $1.php [L,QSA]
RewriteRule ^([^/]+)/(.*)$ $1.php?i=$2 [L,QSA]