Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将htaccess配置为直接访问CSS和JS文件,但将所有其他请求重定向到索引文件_Javascript_Php_Css_Apache_.htaccess - Fatal编程技术网

Javascript 将htaccess配置为直接访问CSS和JS文件,但将所有其他请求重定向到索引文件

Javascript 将htaccess配置为直接访问CSS和JS文件,但将所有其他请求重定向到索引文件,javascript,php,css,apache,.htaccess,Javascript,Php,Css,Apache,.htaccess,我目前正在开发一个系统,但对于如何实现这一点,我确实感到困惑。这是我的简化文件结构 -.htaccess --/public --/public/index.php --/project --/project/template1/css --/project/template2/js --/project/all-other-files-and-folders-used 我的系统当前将所有请求重定向到index.php,该文件将加载项目文件夹中的文件以进行所有其他工作,但我希望htaccess

我目前正在开发一个系统,但对于如何实现这一点,我确实感到困惑。这是我的简化文件结构

-.htaccess
--/public
--/public/index.php
--/project
--/project/template1/css
--/project/template2/js
--/project/all-other-files-and-folders-used
我的系统当前将所有请求重定向到index.php,该文件将加载项目文件夹中的文件以进行所有其他工作,但我希望htaccess能够识别项目文件夹中的所有CSS、IMG和JS文件,并允许直接访问它们

这是我现在拥有的.htaccess文件

RewriteEngine on
RewriteRule ^((?!public/).*)$ public/$1 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?cmd=$1 [PT,L]
这可能吗? 提前感谢

您可以使用:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^((?!(?:public|project)/).+)$ public/index.php?cmd=$1  [QSA,NC,L]

此条件:“RewriteCond%{REQUEST\u FILENAME}!-f”必须保护您不重定向文件。您是否介意解释您的代码,以便我更好地了解发生了什么?我已经实现了你的解决方案,但它只能部分阻止我的其他php文件被访问。其他php文件在哪里?此规则将只影响非文件和非目录。它们位于上面我的简化文件结构中所示的项目文件夹中。请尝试我的更新规则。非常感谢,它已起作用