コミュニティ、Apache mod_rewriteの不一致
私は以下の問題があります:プライベートプロジェクトでは、mod_rewriteで素敵なURLを作成したかったのです。
ローカル(Win 10、Apache 2.4.23).htaccessのすべてのルールが正常に動作します。 遠隔から(Ubuntu 16.04、Apache 2.4.18)、最初の3つのルールはまったく動作しません。特に、すべてが404エラーが見つかりません。
見てみてください。
# Basic site rules
RewriteRule ^login$ /login.php
RewriteRule ^logout$ /login.php?logout
RewriteRule ^signup$ /signup.php
RewriteRule ^confirm/(.*)$ /signup.php?confirm®key=$1
# mail list
RewriteRule ^mails$ /manage_mail.php
RewriteRule ^mail/list/ip$ /manage_mail.php?mode=create_iplist
RewriteRule ^mail/list/usernames$ /manage_mail.php?mode=create_usernamelist
and more rules here...
規則1-3(ログイン、ログアウト、サインアップ)は、前述の404エラーを返します。 以下の規則はすべて意図したとおりに動作します。
アイデア? ありがとうございます。
編集#1:
編集#2を傷:これは私が使用しているバーチャルホストである:
<VirtualHost *:80>
ServerName domain.me
ServerAdmin [email protected]
DocumentRoot /var/www/domain.me/html
<Directory /var/www/domain.me/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog "|/usr/bin/cronolog /var/www/domain.me/log/%Y-%m/error_%Y-%m-%d.log"
CustomLog "|/usr/bin/cronolog /var/www/domain.me/log/%Y-%m/access_%Y-%m-%d.log" combined
</VirtualHost>
マイ/etc/apache2/apache2.confはかなり似ています。
localhostのApacheの設定ファイルで、そのディレクトリに 'AllowOverride All'オプションが設定されていますか? – artur99
長い名前( '/ login.php'など)でページにアクセスできますか? – neuhaus
ブラウザが以前のリクエストからそれらのURLに404をキャッシュしていないことを確かめてください。 これをチェックする最良の方法は、 'curl' cliユーティリティを使用することです: ' curl -I http:// www.example.com/login' – Euperia