重写仅显示没有图片和外部JavaScript的文本

时间:2014-02-10 13:48:30

标签: apache .htaccess mod-rewrite

我的代码如下:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_USER_AGENT} (mozilla|navigator|chrome) [NC]
RewriteRule ^newfolder/(.*)$ /index.html [L,NC]

问题是因为它将所有内容重写为index.html - 这意味着图片和外部JavaScript将不会被看到(加载)...它只重写index.html(文本)但其他东西来自索引而不是(图片,外部JavaScript)。 [L,NC,R]工作,但[L,NC]不工作,我不希望访客看到那是其他页面。 我想向访问者展示完整的index.html及其所有内容 - 但它没有显示图片,外部JavaScript。

1 个答案:

答案 0 :(得分:0)

您需要2 RewriteCond行才能从此重写中排除文件和目录:

# fixed css/js/images
RewriteRule ^newfolder/((?!index).+?\.(?:jpe?g|gif|bmp|png|tiff|css|js|html?))$ /$1 [L,R=301,NC]

RewriteCond %{HTTP_USER_AGENT} (mozilla|navigator|chrome) [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^newfolder/(.*)$ /index.html [L,NC]