我使用以下代码创建了一个虚拟主机:
<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 ^(.*)$ $1.html [R,NC]
考虑我的mod_rewrite在apache2中处于活动状态,但我无法用/ filename
打开页面例如site.ws/about
显示错误: 在此服务器上找不到请求的URL / about。
答案 0 :(得分:1)
我用以下方法解决了这个问题:
RewriteEngine On
RewriteRule ^([a-zA-Z-]+)$ $1.html [L,NC]
&#13;
答案 1 :(得分:0)
我在win2中尝试使用Apache2 2.4.27:
首先在httpd.conf文件中启用vhost。
虚拟主机:
<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 ^([^\.]+)$ $1.html [NC,L]
</IfModule>
###END MOD_REWRITE