mod_rewrite问题

时间:2009-07-21 09:36:02

标签: .htaccess mod-rewrite

我有这个重写规则来访问profile.php?user = username with mysite.com/username ..

问题在于它忽略了我的CSS,即使我使用完整的URL,如果我去常规网址,profile.php?user = username,那就是奇怪的是它是一样的。但如果我删除了我的htaccess文件,那么css就可以了。

RewriteEngine on
RewriteRule (.*) profile.php?user=$1 [QSA,L]

问题出在这里?提前致谢:>

3 个答案:

答案 0 :(得分:2)

如果您尝试获取的URL未解析为文件或目录,则可以使用条件仅触发规则

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) profile.php?user=$1 [QSA,L]

这将停止将foo.css重写为profile.php的请求?user = foo.css

答案 1 :(得分:0)

您的规则将重写任何请求,甚至是您的css文件请求。

你还需要一个像这样的RewriteCond:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) profile.php?user=$1 [QSA,L]

仅当没有与请求匹配的文件时,才会重定向。

答案 2 :(得分:0)

请记住,CSS文件的请求也是一个请求,您的规则正在重写whatever.cssprofile.php?user=whatever.css的请求