3

我正在尝试操纵我的博客服务器上的 .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]

任何帮助将不胜感激。

4

1 回答 1

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 分开,因为这样更易于阅读和维护,以防您将来要添加新的扩展或新目录以进行排除。

于 2013-07-18T17:42:44.860 回答