我有一个正在使用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文件仍无法访问。我该怎么办?
答案 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/