重写以不加载js / css结束



对于下面的。htaccess文件,我显然会在加载脚本和css时得到很多404,因为浏览器一直在错误的目录中查找。

我是一个新手在htaccess和不知道如何解决它。

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule ^$ client/app/index.html [L]
</IfModule>

目录结构如下:

project/client/app/index.html

我建议您使用301重定向用户到正确的路径。这将以你的问题告终。

RewriteRule ^$ client/app/index.html [L, 301]

如果你担心seo,看看https://support.google.com/webmasters/answer/93633?hl=en

服务器上的所有调用都被重定向到您的RewriteRule。添加一个RewriteCond (rewriteconcondition)来忽略存在的CSS和JS文件:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !.(?:css|js|jpe?g|gif|png)$ [NC]
RewriteRule ^$ client/app/index.html [L]

解释:

RewriteCond %{REQUEST_FILENAME} !-f

如果请求的文件名存在(css/main.css),请不要执行rewriterrules。

RewriteCond %{REQUEST_URI} !.(?:css|js|jpe?g|gif|png)$ [NC]

如果文件不存在,但匹配其中一个扩展名,则不执行任何操作。这很有用,因为如果css/main-2.css不存在,您会得到404,而不是将您重定向到index.php

最后是你自己的规则,它重定向所有非条件规则

在您的.htaccess文件中,这是为我工作的。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !=/index.html
RewriteCond %{REQUEST_URI} !.(?:css|js|jpe?g|gif|png)$ [NC]
RewriteRule ^ /index.html [R=301]

谢谢!

最新更新