gpt4 book ai didi

php - 如何强制用于路由的.htaccess不路由.css、.js、.jpg等文件?

转载 作者:行者123 更新时间:2023-12-01 19:24:02 25 4
gpt4 key购买 nike

我在网站的子目录中有以下 .htaccess 文件,它允许我将所有 URL 路由到可以解析它们的 index.php。

但是,它不允许使用我网站所需的标准文件,例如css、javascript、png 等。

我需要更改什么(我假设在第四行)以允许这些文件,这样它们就不会被路由到index.php?

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|public|css|js|png|jpg|gif|robots\.txt)
RewriteRule ^(.*)$ index.php/params=$1 [L,QSA]
ErrorDocument 404 /index.php

最佳答案

我注意到了一些事情。您使用的是正斜杠而不是问号...参数重定向通常如下所示:

RewriteRule ^(.*)$ index.php?params=$1 [L,QSA]

这应该可以单独工作,因为这些文件*应该*是真实的文件。

ErrorDocument 404 /index.php    

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?params=$1 [L,QSA]

要让网站忽略特定扩展名,您可以添加一个条件来忽略大小写并仅检查请求中的文件名末尾:

RewriteEngine On

RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?params=$1 [L,QSA]

如果您尝试忽略某个文件夹,则可以添加:

RewriteEngine On

RewriteCond %{REQUEST_URI} !(public|css)
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?params=$1 [L,QSA]

关于php - 如何强制用于路由的.htaccess不路由.css、.js、.jpg等文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17027747/

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