122

現在、lightspeedサーバーでホスティングを使用しています。ホスティングmod_rewriteは有効になっていると言いますが、そこでスクリプトを動作させることができません。URL にアクセスしようとすると、404 -ページが見つかりませんでした。

Apache で実行されている別のサーバーに同じコードを配置しました。あそこは働いている。だから私は推測します、それは.htaccess問題mod_rewriteです。

しかし、ホスティング サポートはまだ mod_rewrite がオンになっていると主張しているので、実際に有効になっているかどうかを確認する方法を知りたいです。

で確認しようとしましphpinfo()たが、うまくいきませんでしたmod_rewritelightspeed

確認する方法はありますか?私を助けてください。ありがとうございました。

参考:私の.htaccessコードは

Options -Indexes

<IfModule mod_rewrite.c>
DirectoryIndex index.php
RewriteEngine on

RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
</IfModule>

私もこのようにしてみました

DirectoryIndex index.php
RewriteEngine on

RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

でも同じ結果。

4

18 に答える 18

130

コマンドラインから、次のように入力します

須藤a2enmodの書き換え

書き換えモードがすでに有効になっている場合は、その旨が表示されます。

于 2016-06-08T05:16:51.337 に答える
105
  1. mod_rewrite モジュールが有効になっているかどうかを確認するには、WAMP サーバーのルート フォルダーに新しい php ファイルを作成します。次のように入力します

    phpinfo();

  2. 作成したファイルにブラウザからアクセスします。

  3. CtrlFをクリックして検索を開きます。「mod_rewrite」を検索します。有効になっている場合は、「ロードされたモジュール」として表示されます

  4. そうでない場合は、httpd.conf (Apache 構成ファイル) を開き、次の行を探します。

    #LoadModule rewrite_module modules/mod_rewrite.so

  5. 先頭のシャープ ('#') 記号を削除して、このファイルを保存します。

  6. Apache サーバーを再起動します。

  7. ブラウザで同じ php ファイルにアクセスします。

  8. 「mod_rewrite」を再度検索します。あなたは今それを見つけることができるはずです。

于 2012-06-05T03:50:11.787 に答える
18

apache_get_modules() が認識されないか、このモジュールに関する情報が phpinfo() にない場合。.htaccess ファイルに次の行を追加して、mod の書き換えをテストしてみてください。

RewriteEngine On
RewriteRule ^.*$ mod_rewrite.php

そして mod_rewrite.php:

<?php echo "Mod_rewrite is activated!"; ?>
于 2014-10-13T09:06:18.257 に答える
18

コンソール:

<VirtualHost *:80>
        ...
    <Directory ...>
        AllowOverride All
    </Directory>
</VirtualHost>

sudo a2enmod rewrite
sudo service apache2 restart
于 2013-10-11T13:21:03.007 に答える
15

もしも

in_array('mod_rewrite', apache_get_modules())

戻りtrue、mod-rewrite が有効になります。

于 2013-12-02T17:53:31.977 に答える
10

このコードが .htaccess ファイルにある場合 (mod_rewrite.c のチェックなし)

DirectoryIndex index.php
RewriteEngine on

RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

500サーバーエラーが発生しても、サイトのどのページにもアクセスできます.modの書き換えがオンになっていると言っても安全だと思います.

于 2011-09-07T17:05:53.607 に答える
5

Linux システムを使用している場合は、次のフォルダーで apache2 (私の場合) のすべての有効化モジュールを確認できます:/etc/apache2/mods-available

cd /etc/apache2/mods-available

入力する: ll -a
php (この場合は php 7 ) で利用可能なモジュールを確認したい場合は、フォルダー /etc/php/7.0/mods-available

cd /etc/php/7.0/mods-available

入力し:ll -a

于 2016-11-16T22:17:49.417 に答える
5

PHP関数を使用できます

      apache_get_modules

そしてmod_rewriteをチェックしてください

<pre>
<?php
print_r(apache_get_modules());
?>
</pre>

http://in2.php.net/apache_get_modules

于 2012-06-05T06:35:16.113 に答える
4

新しいページを作成してこのコードを追加するだけです

 <?php
 if(!function_exists('apache_get_modules') ){ phpinfo(); exit; }
 $res = 'Module Unavailable';
 if(in_array('mod_rewrite',apache_get_modules())) 
 $res = 'Module Available';
?>
<html>
<head>
<title>A mod_rewrite availability check !</title></head>
<body>
<p><?php echo apache_get_version(),"</p><p>mod_rewrite $res"; ?></p>
</body>
</html>

このページを実行すると、モジュールが利用可能かどうかを知ることができます。そうでない場合は、ホスティングに依頼するか、ローカルマシンで有効にしたい場合は、wamp apache で書き換えモジュールを有効にすることに関連するこの youtube のステップバイステップのチュートリアルを確認してください。 https://youtu.be/xIspOX9FuVU?t=1m43s Wamp サーバーアイコン -> Apache -> Apache Modules で rewrite module オプションをチェック

于 2016-10-11T07:23:03.437 に答える
0

私は正確な問題を抱えていました。カスタム構造をクリックしてから追加/index.php/%postname%/して解決しました。

これが、一体何が間違っていたのかを見つけるために私が経験したストレスを誰かが救うことを願っています.

于 2018-01-21T19:07:35.110 に答える