如何为虚拟主机设置htaccess文件?

Moh*_*mad 4 apache .htaccess virtualhost ubuntu-16.04

我用以下代码创建了一个虚拟主机:

<VirtualHost *:80>

    ServerAdmin admin@127.0.0.1
    ServerName site.ws
    ServerAlias www.site.ws
    DocumentRoot /home/me/Projects/website/build
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /home/me/Projects/website/build>

        Allow from all
        Satisfy any

</Directory>

</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我使用以下代码在 /build 目录中创建了一个 .htaccess 文件:

RewriteEngine On

RewriteRule   ^(.*)$    $1.html    [R,NC]
Run Code Online (Sandbox Code Playgroud)

考虑我的 mod_rewrite 在 apache2 中处于活动状态,但我无法使用 /filename 打开页面

例如 site.ws/about

它显示错误:在此服务器上找不到请求的 URL /about。

ben*_*ben 7

我在 win 中尝试使用 Apache2 2.4.27:

首先在 httpd.conf 文件中启用虚拟主机。

虚拟主机:

<VirtualHost *:80>
    ServerName site.ws
    DocumentRoot /home/me/Projects/website/build
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    <Directory /home/me/Projects/website/build>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

.htaccess:

###START MOD_REWRITE
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    #REMOVE .html EXTENSION
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.html [NC,L]

</IfModule>
###END MOD_REWRITE
Run Code Online (Sandbox Code Playgroud)