来自php变量的mod_rewrite url

时间:2011-08-18 23:12:05

标签: php apache mod-rewrite rewrite

我遇到了这个我无法弄清楚的问题,我想使用mod_rewrite来执行以下操作:

http://localhost/The+Beatles

http://localhost/artist.php?a=The+Beatles

我已尝试在这里和其他网站上关注一些示例,并根据我的需求进行测试我想出了以下内容但它不起作用:

RewriteEngine on
RewriteRule ^(.*) artist.php?a=$1

似乎将一个变量设置为artist.php,我似乎无法弄明白?希望有人可以提供帮助。

戴夫

1 个答案:

答案 0 :(得分:1)

你可以尝试这套规则(改编自一个vanilla Zend Framework项目)

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [L]
RewriteRule ^(.*)$ artist.php?a=$1 [L,QSA]

这会将对不存在文件的请求重写为artists.php脚本,同时仅保留对图像,样式表,JavaScript等的正常请求。

artist.php脚本中,您只需通过$_GET['a']变量访问原始请求。