正しく理解できたら、httpd.config
に何かを入れてmod_rewriteを有効にする必要があります。これが当てはまる場合、httpd.conf
またはApache.conf
に何を入れる必要がありますか? OS固有のものにしてください。
いいえ、mod_rewrite
はApacheモジュールであり、PHPとは関係ありません。
モジュールをアクティブにするには、httpd.conf
の次の行をアクティブにする必要があります。
LoadModule rewrite_module modules/mod_rewrite.so
既にアクティブかどうかを確認するには、次の行を含むWebディレクトリに.htaccess
ファイルを入れてみてください
RewriteEngine on
500内部サーバーエラーをスローせずにこれが機能し、.htaccess
ファイルが解析された場合、URL書き換えは機能します。
Apache2を使用してDebianでmod_rewriteを有効にする人々のための単なるfyi:
mod_rewriteが有効かどうかを確認するには:
Mods_enabledを実行して、モジュールへのリンクを探します
ls /etc/Apache2/mods-enabled | grep rewrite
これがrewrite.load
を出力する場合、モジュールは有効になっています。 (注:Apache2へのパスは/ etc /ではない場合がありますが、そうである可能性があります。)
mod_rewriteが有効になっていない場合:
モジュールを有効にします(上記で探していたリンクを基本的に作成します):
a2enmod rewrite
すべてのApache構成ファイルをリロードします。
service Apache2 restart
私の場合、これらすべての構成が完了した後でも問題が発生しました(@Pekkaはhttpd.confおよび.htaccessファイルの変更について言及しています)。追加した後にのみ解決されました
<Directory "project/path">
Order allow,deny
Allow from all
AllowOverride All
</Directory>
vhostファイルの仮想ホスト構成
2017年9月29日に編集(Apache 2.4 <の場合) この回答を参照
<VirtualHost dropbox.local:80>
DocumentRoot "E:/Documenten/Dropbox/Dropbox/dummy-htdocs"
ServerName dropbox.local
ErrorLog "logs/dropbox.local-error.log"
CustomLog "logs/dropbox.local-access.log" combined
<Directory "E:/Documenten/Dropbox/Dropbox/dummy-htdocs">
# AllowOverride All # Deprecated
# Order Allow,Deny # Deprecated
# Allow from all # Deprecated
# --New way of doing it
Require all granted
</Directory>
いいえ、必要はありません。 mod_rewrite
はApacheモジュールです。 php.ini
とは関係ありません。
それがホスティングサイトに関連している場合はホスティングに尋ねるか、ローカルマシンで有効にする場合は、このApacheでリライトモジュールを有効にすることに関するステップバイステップチュートリアルを確認してください https://youtu.be/xIspOX9FuVU ?t = 1m43s
Wampサーバーアイコン-> Apache-> Apache Modulesおよびrewrite moduleオプションをチェックする必要がありますが、その後はすべてのサービスを再起動する必要があります
モジュールrewrite_moduleはほとんどの場合サーバーに組み込まれています
.htaccessを使用する
http://www.generateit.net/mod-rewrite/ でMod Rewrite Generatorを使用します
ネットワークソリューションは、mod_rewriteを有効にするためにcgi-binにphp.iniを配置するアドバイスを提供します