如何为虚拟主机设置 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]
我用这段代码创建了一个虚拟主机:
<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]