windows2008 Apache2.4 .htaccess 失效问题对应配置全过程
导致 .htaccess 不起作用的原因,在于 RewriteRule 规则行首匹配。以下是配置全过程:
你首先必须得让服务器支持mod_rewrite,如果你使用的是虚拟主机,请事先询问你的主机提供商。
打开httpd.conf,找到
#LoadModule rewrite_module modules/mod_rewrite.so 把#去掉
找到AllowOverride None 改成 AllowOverride All
.htaccess文件实现URL重写内容
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^app(.*)/$ /7428cnzkams.php
RewriteRule ^app(.*)/index.html$ /7428cnzkams.php
</IfModule>
主机配置区
<VirtualHost _default_:80>
ServerName localhost:80
php_admin_value open_basedir .:/tmp/
php_admin_value open_basedir "${SRVROOT}/htdocs/www7428cn;C:/windows/TEMP"
DocumentRoot "${SRVROOT}/htdocs/www7428cn"
<Directory "${SRVROOT}/htdocs/www7428cn">
Options Indexes Includes FollowSymLinks
Options Includes FollowSymLinks
AllowOverride all
</Directory>
</VirtualHost>
测试平台: Windows 2008, Apache 2.4, .htaccess 放于根目录下
RewriteRule ^/app$ /7428cnzkams.php (httpd.conf 中有效,.htaccess 中无效)
RewriteRule ^app$ /7428cnzkams.php (httpd.conf 中无效,.htaccess 中有效)
来源:未来智库 https://www.7428.cn