regex - .htaccess 文件访问

标签 regex apache .htaccess mod-rewrite

我有一个关于 .htaccess 文件访问 css 文件和 js 文件的问题

我有这个:

RewriteEngine On
RewriteBase /
RewriteRule ^$ index.php?page=index [L,NC]
RewriteRule ^([a-z0-9]+)/?$ index.php?page=$1 [L,NC]
RewriteRule ^([a-z0-9]+)/([a-z0-9]+)/?$ index.php?page=$1&subpage=$2 [L,NC]

现在,我意识到一些文件(如 js、css)无需使用即可正确加载:
RewriteCond %{REQUEST_URI} !-f

如果我在我的规则之前添加它会更好,或者没关系?

最佳答案

通常包含 RewriteCond %{REQUEST_URI} !-f 是安全的in 重写规则,使 css、js、图像等物理文件不受这些规则的影响。

但是在您的情况下 您的任何规则都不会影响这些 css、js、图像文件 因为您不包括点字符 .在匹配的正则表达式中。

为了解决您的问题,我建议 在 css、js、图像文件中使用绝对路径 而不是亲戚。这意味着您必须确保这些文件的路径以 http:// 开头。或斜线 / .

关于regex - .htaccess 文件访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9378422/

相关文章:

regex - 我想更改我的网址 (htaccess)

linux - .htaccess 禁用特定 IP 的 mod_security

c++ - 基本 boost 正则表达式问题

regex - 用于替换 xml 属性的正则表达式

apache - 预期 </VirtualHost> 但看到 </Directory>

PHP 找不到保存处理程序内存缓存

php - 使用自定义 htaccess mod 重写时有效路由上的 Codeigniter 404

regex - 高效的 Django QuerySet 正则表达式

c# - .Net Regex - 最后一个重复字符

java - Apache Commons Pool 2 中的 maxTotal 和 maxIdle 有什么区别?