我正在尝试操纵我的博客服务器上的.htaccess文件,以允许重定向某些内容,同时允许其他内容被访问。
我想要做的是,允许任何扩展名为(gif|jpg|css|js|ico|png)
的文件与目录/includes/
和文件sitemap.html
一起访问,而我想要的所有其他流量发送到sitemap.html文件。
这可能吗?
这是我正在尝试使用的代码,但它似乎没有像预期的那样工作。重定向与文件扩展名匹配,允许访问sitemap.html
文件,但是我想要允许访问的/includes/
目录从用户的角度来看,无论实际目录中的文件是什么,似乎仍然是重定向到sitemap.html文件。
RewriteEngine On
RewriteCond %{REQUEST_URI} !(\.(gif|jpg|css|js|ico|png)$|^/includes$|^/sitemap\.html$)
RewriteRule ^(.*)$ /sitemap.html [R=301,L]
非常感谢任何帮助。
答案 0 :(得分:1)
试试这个:
RewriteCond %{REQUEST_URI} !\.(gif|jpg|css|js|ico|png)$ [NC]
RewriteCond %{REQUEST_URI} !^/(sitemap\.html|includes(/.*|))$ [NC]
RewriteRule ^ /sitemap.html [R=301,L]
当然,两个RewriteCond行可以合并为1,但我建议将它保持为2,因为这样更易于阅读和易于维护,以防您希望在将来添加新扩展或新目录时进行排除。