在Windows中启用mod_rewrite,以使.htaccess正常工作

时间:2018-11-14 12:35:09

标签: apache .htaccess tomcat

我想在Apache Tomcat服务器上运行Angular 6应用程序。但是每次我在深层链接URL中重新加载时,都会显示状态 404页面未找到。 因此,为此,我在index.html所在的根文件夹中包含了 .htaccess 文件。 但是仍然无法使用,因为可能未启用 mod_rewrite

要启用mod_rewrite,我正在搜索 httpd.conf 文件,我必须在其中进行更改。但是在我的 C:\ Program Files \ Apache Software Foundation \ Tomcat 9.0 目录中没有此类文件。

那么我如何启用mod_rewrite使.htaccess正常工作并重新加载我的Angular应用程序呢?

1 个答案:

答案 0 :(得分:0)

Tomcat不使用httpd.conf,它是一个apache文件。各个webapp的位置都保存在各自的web.xml文件中,但是所有配置的位置都位于../tomcat8/conf/server.xml和web.xml

尝试使用WAMP或Apache2代替Tomcat

您需要定向.htaccess文件以在每次匹配时加载index.html

喜欢

DirectoryIndex index.html
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(jpg|jpeg|png|gif|flv|mpeg|mpg|mp4)$
RewriteRule ^.*$ bootstrap.html [NC,L]

您将在LoadModule rewrite_module modules/mod_rewrite.so文件的httpd.conf中找到此行,该文件位于conf文件夹下。您需要从其中删除哈希(#),然后重新启动apache服务。

如果要在Tomcat中进行设置,那么我在示例项目中所做的工作将在webapps\ROOT\WEB-INF\web.xml文件中添加以下代码

<?xml version="1.0" encoding="UTF-8"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  version="4.0"
  metadata-complete="true">

  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

   <error-page>
    <error-code>404</error-code>
    <location>/test/index.html</location>
  </error-page>
</web-app>

这里/test/index.html test是我的项目名称,您可以将其更改为您的名称,但尝试使用项目web.xml以避免其他项目重定向。在这种情况下,您可以直接在路径中添加/index.html