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

How can i set htaccess file for virtual host?

我用这段代码创建了一个虚拟主机:

<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>

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

RewriteEngine On

RewriteRule   ^(.*)$    .html    [R,NC]

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

打开页面

例如网站。ws/about

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

我在 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>

.htaccess:

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

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

</IfModule>
###END MOD_REWRITE

我用 :

解决了这个问题

RewriteEngine On

RewriteRule   ^([a-zA-Z-]+)$ .html    [L,NC]