/ / Apache PHP mod_rewriteが動作しない - php、apache、mod-rewrite

Apache PHP mod_rewriteが動作しない - PHP、Apache、mod-rewrite

私はmod_rewriteの意味をテストしようとしています: 私は2つのファイルがあります: level1.php そして warpzone.php.

私の .htaccess 私は次のコードを持っています:

RewriteEngine On
RewriteRule ^warp-zone.php$ level-1.php

しかし、私がwarpzone.phpに行くと、何も起こらない:/(URLは変わらない)

助言がありますか?私は間違っていることを本当に知りません。

回答:

回答№1は0

まずファイルの中に.htaccessファイルのPHPファイル名にダッシュを付けます。

書き換え条件 - これはコンテンツを新しいものに変更しますが、URLはそのままです:

RewriteEngine On
RewriteRule    ^warpzone.php$  level1.php  [L]

リダイレクト条件 - コンテンツとURLの両方を新しいものに変更します。

RewriteEngine On
RewriteRule    ^warpzone.php$  /level1.php  [R]

mod_rewriteの代わりにリダイレクト条件を使うこともできます:

Redirect 301 /warpzone.php /level1.php

場合は、あなたのために動作しない場合は、あなたの上部にあるheaders()メソッドを使用することができます warpzone.php ファイル:

<?php
header("Location: " . $_SERVER["SERVER_NAME"] . "/level1.php");
?>

回答№2の-3
  • warpzone.phpまたはwarp-zone.phpが正しいファイル名であるかどうかを確認してください。
  • mod_rewriteが利用可能であればapacheのerror.logファイルをチェックし、そうでなければ有効にします(これは "LoadModule ..."で行うことも、Linuxディストリビューションでラップすることもできます)
  • グローバルコンフィグファイルhttpd.conf / apache2.confに "AllowOverride All"を設定しないと、mod_rewriteの使用が許可されているかどうかをapache error.logで確認してください。
  • 書き換えルールを "RewriteRule ^ warp-zone.php $ level-1.php"に変更してください [L]"httpリダイレクトを発行する; Lフラグなしでは、Webサーバーで内部的に処理されます; https://httpd.apache.org/docs/2.4/rewrite/flags.html すべての旗のために

敬具