web-dev-qa-db-ja.com

XenForo SEOフレンドリーURLはフォーラムページで404を返します

XenForoのインストールのベースディレクトリに.htaccessファイルがあります。 SEOフレンドリーURLを有効にすると、フォーラムとメンバーページでのみエラー404が返されます。

htaccessファイル:

#   Mod_security can interfere with uploading of content such as attachments. If you
#   cannot attach files, remove the "#" from the lines below.
#<IfModule mod_security.c>
#   SecFilterEngine Off
#   SecFilterScanPOST Off
#</IfModule>

ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 405 default
ErrorDocument 406 default
ErrorDocument 500 default
ErrorDocument 501 default
ErrorDocument 503 default

<IfModule mod_rewrite.c>
    RewriteEngine On

    #   If you are having problems with the rewrite rules, remove the "#" from the
    #   line that begins "RewriteBase" below. You will also have to change the path
    #   of the rewrite to reflect the path to your XenForo installation.
    RewriteBase /

    #   This line may be needed to enable WebDAV editing with PHP as a CGI.
    #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
</IfModule>

sEOフレンドリーURLが有効/無効になっているときにindex.phpのリンクを見たとき?行っているはずですが、フォーラムを見つけることができないようです...

3
diamondpumpkin

どうやら、エラーはまったくありません。

.htaccessファイルはサーバーで許可/有効化されていないようです。ファイルにランダムテキストを追加してもエラーは発生しないためです。 (それ以外の場合、500 Internal Server Errorが表示されるはずです。)

ドキュメントのルートディレクトリをカバーするサーバー設定(AllowOverride Allコンテナ)でAllowOverride FileInfo(または<Directory>のようなより制限的なもの-mod_rewriteに十分なもの)を設定する必要があります。

ただし、サーバー構成にアクセスできる場合は、サーバー構成でこれをすべて実行でき、.htaccessをまったく使用しません(推奨)。

参照:
https://httpd.Apache.org/docs/2.4/mod/core.html#allowoverride


UPDATE:そして、まだ動作しない場合は、上記のコメントで述べたようにチェックを繰り返します:

  • Mod_rewriteが有効になっていますか? <IfModule mod_rewrite.c>ラッパーを削除します-エラーが発生しますか? mod_rewriteが有効になっていない場合は、500内部サーバーエラーが表示されることが予想されます(エラーログにはエラーの特定の詳細が含まれている必要があります)。 mod_rewriteを有効にする を実行し、Apacheを再起動する必要があります。
  • FollowSymLinks(またはSymLimksIfOwnerMatch)は有効になっていますか?これはmod_rewriteが機能するために必要です。 Options +FollowSymLinksファイルの先頭に.htaccessを追加します。

まだApacheが生成した404メッセージが表示されている場合は、URLが書き換えられていないため、「何か他のもの」が発生しています。 (.htaccessファイルは「OK」に見えます。)

フレームワーク(XenForo)から生成された404が表示される場合、問題はアプリケーションにあります。

1
MrWhite