由于.htaccess无法访问swf文件

时间:2012-07-11 11:22:39

标签: php .htaccess

我有一个正在使用MVC模式的网站,现在我正在尝试使用带有JavaScript的swf文件进行supercookies,但服务器不提供swf文件。在我看来,这是因为.htaccess文件。 我把它改成了:

php_flag magic_quotes_gpc Off

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}/ [L,R=301]

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d

RewriteRule ^.*$ ./index.php [NC,QSA]

AddType application/x-shockwave-flash swf

但是swf文件仍无法访问。我该怎么办?

1 个答案:

答案 0 :(得分:0)

您需要在重写条件中添加一个例外,以允许直接访问.swf文件以及swf文件所在的文件夹

我在简单的MVC网站上使用了以下内容,允许直接访问我不想被MVC引擎处理的文件或文件夹:

RewriteCond $1 !^(controller\.php|script\.php|images|css|js|forum|pdfs|xmls|pdf|robots|.*.swf)
RewriteRule ^(.*)$ /controller.php/$1 [L]

我认为你最后的重写规则应该有这样的条件:

RewriteCond $1 !^(.*.swf)
RewriteRule ^(.*)$ ./index.php [NC,QSA]

您可能想要阅读mod_rewrite文档。 http://httpd.apache.org/docs/current/mod/mod_rewrite.html 或者看看mod_rewrite上的一些教程 http://www.sitepoint.com/guide-url-rewriting/