gpt4 book ai didi

apache - .htaccess 破坏了所有的 css 和 js,尽管我设置了绝对路径

转载 作者:行者123 更新时间:2023-12-02 00:37:47 26 4
gpt4 key购买 nike

这是我的 .htaccess 文件

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !=cms

RewriteRule ^([^/]*)/search/([^/]+)$ index.php?lang=$1&id=search&searchword=$2 [L]
RewriteRule ^([^/]*)/([^/]*)$ index.php?lang=$1&id=$2 [L]

它没有像我预期的那样工作。

我的.css,.js文件有绝对路径,比如http://bs.am/finance/css/style.css (我在 finance 文件夹中的所有文件)

第一条规则破坏了所有的 css 和 js 文件,但如果我替换 rewriteRules 的地方,工作正常。

有人可以解释这种行为吗?

我也试过 RewriteCond %{REQUEST_FILENAME} !^(.+)\.css$ 但没有帮助。

非常感谢

最佳答案

根据您的问题,您的 .htaccess 文件似乎位于 /finance/ 文件夹中。如果是这种情况,问题在于您的第二个 RewriteRule 将匹配您的脚本和 sylesheets 的请求。

您已有的条件可以让您避免这个问题,但它们只适用于它们之后的第一个规则(您的搜索规则)。像往常一样,有几种不同的方法可以解决问题,但最简单的方法是复制 RewriteCond block ,以便它也适用于第二条规则。这看起来像下面这样:

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 =cms
RewriteRule ^([^/]*)/search/([^/]+)$ index.php?lang=$1&id=search&searchword=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !=cms
RewriteRule ^([^/]*)/([^/]*)$ index.php?lang=$1&id=$2 [L]

请注意,您甚至可能不需要第一个规则的条件 block ,因为您的任何真实文件都不太可能匹配该测试模式。不过,第二个绝对需要它,以防止您的资源被误导。

替代方法

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond $1 !=cms
RewriteRule ^([^/]*) - [S=2]

RewriteRule ^([^/]*)/search/([^/]+)$ index.php?lang=$1&id=search&searchword=$2 [L]
RewriteRule ^([^/]*)/([^/]*)$ index.php?lang=$1&id=$2 [L]

在这种方法中,如果您的任何条件匹配,我们将跳过接下来的两条规则(由 S=2 指示)。这与将条件 block 应用于它们相同。作为Gumbo mentions ,您还可以使用 L 标志代替 S=2 以在条件匹配的情况下忽略该 block 之后的所有规则。哪个这些选项中的哪一个最合适取决于您将来可能要添加的其他规则。

关于apache - .htaccess 破坏了所有的 css 和 js,尽管我设置了绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3912412/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com