今日やりたいことは、サブフォルダにリダイレクトのルールを書くことだけです。例:あなたはURLを入力します:example.comそして、にリダイレクトされます。 example.com/subfolder
こんな単純な願い。私はインターネット上で解決策を見つけようとしました。インターネットから、htdocsルートに。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を実行しています。
.htaccessとmod_rewriteのエラー のおかげで私の解決策が見つかりました
Apache 2.4およびすべての* .confファイル(例:httpd-vhosts.conf、http.conf、httpd-autoindex.confなど)では
Require all granted
の代わりに
Order allow,deny
Allow from all
OrderおよびAllowディレクティブは、Apache 2.4では推奨されません。
対処方法{設定以外に問題がなければ}
デフォルトでは、Appacheはipv4からのアクセスを制限していません。 (一般的な外部IP)
制限されるのは 'httpd.conf'(またはあなたのApacheの設定によっては 'Apache2.conf')の設定です
溶液:
すべて置き換えます。
<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アドレスを使用してサーバーにアクセスしようとしていて、「のようにエラーが表示される場合は禁止されていますこのサーバー上で/にアクセスする権限がありません
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
このエラーは、ハッシュ(#)が削除されるか、または混乱すると発生します。この2行は上のように表示されます。
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。私のWebディレクトリは次のとおりです。/ var/www/html
これは私にとってMac OS Mojave上で動作します。
<Directory "/Users/{USERNAME}/Sites/project">
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
require all granted
</Directory>