如何设置.htaccess,以便从基本目录读取侧html文件中的链接

如何设置.htaccess,以便从基本目录读取侧html文件中的链接,html,apache,.htaccess,Html,Apache,.htaccess,现在,我已经将我的html文件放在public/views文件夹下, public/libs下的库和public/src中的自定义文件 我正在使用DictoryIndex设置默认主页。类似于DirectoryIndex public/views/index.html 但是在index.html文件中,我必须使用打开与index.html相同目录下的文件,否则它找不到该文件。然后URL看起来会很难看,比如site.com/public/views/product.html 我可以问一下,如何设置.

现在,我已经将我的html文件放在public/views文件夹下, public/libs下的库和public/src中的自定义文件

我正在使用DictoryIndex设置默认主页。类似于DirectoryIndex public/views/index.html

但是在index.html文件中,我必须使用打开与index.html相同目录下的文件,否则它找不到该文件。然后URL看起来会很难看,比如site.com/public/views/product.html

我可以问一下,如何设置.htaccess文件以除去URL地址中的public/views

还有一个问题,当我编写代码导入index.html中的库时,它似乎会从基本文件夹中读取,就像我放置.htaccess文件的地方一样。但是在其他html文件中,它们将从自己的目录中读取,就像public/view中的html文件将开始从文件夹视图中读取一样。有没有办法解决这个问题


谢谢

您也需要通过HTTP访问您的LIB和自定义文件吗?如果不是,只需将文档根目录设置为public/views

否则,您可以使用以下命令将*.html重写为public/views

Options +FollowSymLinks -Multiviews

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule (.+\.html)$ /public/views/$1 [L]    
无论如何,在DirectoryIndex指令中使用完整路径而不仅仅是文件名不是一个好主意,原因很明显


它还解决了第二个问题。目前,public/views/index.html被视为/因此与此文件相关的任何内容都是相对于/的,而不是视图文件夹。另一方面,任何其他文件仍被视为其自身,因此包含相对于视图文件夹的内容。

它不起作用,它只提供根文件夹中的文件夹和文件列表。。。顺便说一句,我正在使用wamp和localhost测试代码,这可能是个问题吗?请确保在主Apache配置的正确目录指令中有AllowOverride All选项。没有它,您将无法使用.htaccess的所有功能。我还使我的回答更加有力。在httpd.conf中查找AllowOverride,并在正确的目录块中将其从None更改为All。您可以选择添加一个指向文档根目录的新目录块,以使其更加具体。您好,它可以工作,但url显示/public/views,是否仍有删除它的方法?我在本地服务器上测试它时没有,这就是重写规则的全部要点,它是重写的,而不是重定向的。你能发布你的完整的.htaccess吗?我的.htaccess只包含你写的代码,我复制并粘贴了它。。。但是我的根文件夹中还没有httpd.conf。我正在使用wamp,我是在他们的httpd.conf文件中进行编辑,还是在项目文件夹的根目录中创建一个新的文件?如果我需要做一个新的。。。你介意给我一个你认为有帮助的教程样本或链接吗?谢谢:-