我今天想做的就是将重定向规则写入子文件夹,例如:您输入URL:example.com,然后重定向到example.com/subfolder
这么简单的愿望。我试图在互联网上找到解决方案。互联网告诉我在htdocs root中添加一个.htaccess文件:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
RewriteRule ^$ subfolder [L]
我这样做了但是显然没有成功,他们没有告诉我我必须取消注释httpd.conf中的模块:
LoadModule rewrite_module modules/mod_rewrite.so
所以我也这样做了。再没有成功。他们没有告诉我我必须更改我的httpd.conf以便启用.htaccess文件:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
再次没有成功,因为我在输入URL时收到此错误:
禁止您无权访问此服务器上的/。
现在我卡住了,我在互联网上找不到更多的解决方案。由于私人原因,我只是在Windows 7机器上运行Apache 2.4。
找到我的解决方案感谢Error with .htaccess and mod_rewrite 对于Apache 2.4和所有* .conf文件(例如httpd-vhosts.conf,http.conf,httpd-autoindex.conf ..etc)使用
Require all granted
代替
Order allow,deny
Allow from all
Apache 2.4中不推荐使用Order和Allow指令。
工作方法{如果配置以外没有问题}
默认情况下,Apache不限制从ipv4访问。 (普通外部ip)
可能限制的是'httpd.conf'(或'apache2.conf'中的配置,具体取决于您的apache配置)
解:
全部替换:
<Directory />
AllowOverride none
Require all denied
</Directory>
同
<Directory />
AllowOverride none
# Require all denied
</Directory>
因此删除了对Apache的所有限制
在Require local
目录中将Require all granted
替换为C:/wamp/www/
<Directory "c:/wamp/www/">
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
# Require local
</Directory>
解决方案很简单。
如果您尝试使用本地IP地址访问服务器,并且您收到错误,例如Forbidden您无权访问/在此服务器上
只需打开你的httpd.conf文件(在我看来是C:/wamp/bin/apache/apache2.2.21/conf/httpd.conf
)
搜索
<Directory "D:/wamp/www/">
....
.....
</Directory>
将允许替换为127.0.0.1
至
允许所有人
保存更改并重新启动服务器。
现在,您可以使用您的IP地址访问您的服务器
问题出在https.conf文件中!
# Virtual hosts
# Include conf/extra/httpd-vhosts.conf
散列(#)被删除或混乱时会发生错误。这两行应如上所示。
在Apache / 2.2.15(Unix)上找到了我的解决方案。
感谢@QuantumHive的回答:
第一:我发现了所有
Order allow,deny
Deny from all
代替
Order allow,deny
Allow from all
然后:
我订了
#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
#<Directory /var/www/html>
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
删除以前的“#”注释
#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory /var/www/html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
PS。我的WebDir是:/ var / www / html
这适用于Mac OS Mojave:
<Directory "/Users/{USERNAME}/Sites/project">
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
require all granted
</Directory>