編集: 現在の .htaccess ファイル:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
## hide .php extension snippet
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*?)/?$ $1.php [L]
私のサイトは、大規模なホスティング アカウントに接続されたドメインのサブフォルダーでホストされています。
basesite
/iioengine
/forums
/.htaccess //file works
/.... //other MyBB content
/demos.php
/index.php //iioengine.com (homepage)
/.htaccess //file doesn't work
/... //other iioengine php pages
2 つの異なる htaccess ファイルを使用していることが問題ですか?
動作する必要があるリンクは次のとおりです: http://iioengine.com/demos
この現在の htaccess ファイルがすべてのフォーラムの URL も混乱させていることに気付きました
これはもう機能しません: http://iioengine.com/forums/Forum-Box2D
編集:再開してくれてありがとう、私はいくつかの進歩を遂げました. これが私の現在のhtaccessファイルです:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
</IfModule>
それでも 404 ページが表示されますが、次の行を入れると:
RewriteRule . /index.php [L]
「.php」以外のすべてのリクエストはホームページに転送されます...したがって、mod_rewriteは確実に有効になっていますが、正しく機能していません。問題が何であるか知っている人はいますか?
編集:これは重複ではありません-他の解決策はどれも私にとってはうまくいきません。私の質問は、解決策が存在しないことです。なぜ解決策が機能しないのですか。誰もこれを解決できませんでした。私は自分で多くの解決策を試してきました。このフォーラムの目的は、特定の問題に対する解決策を得ることではありませんか?
明確にさせてください...
サブフォルダーで MyBB を実行していますが、その書き換えは正常に機能します。たとえば、このリンクは機能します: http://iioengine.com/forums/Forum-Box2D
MyBB の一部ではないすべての php ページには、URL にまだ .php 拡張子が含まれています。これらを削除しようとしていますが、何も機能していません。例: http://iioengine.com/demos
... [元の投稿]
これについては明らかに多くの情報がありますが、私はほぼ十数の異なる解決策を試しましたが、404 ページを通過することはできませんでした。
ここに私のサイトがあります: http://iioengine.com/、すべてのページは php で、ホームページとすべてのフォーラム ページ以外のすべての URL の末尾に削除したい '.php' があります。
「.php」以外のリクエストを正しいページにリダイレクトすることに加えて、リクエストの一部であっても「.php」の部分を削除したいと思います (すべてのコンテンツで既に「.php」が指定されているため)。ハイパーリンク)。
これは私がこれまでに持っているもので、ほとんどがこの投稿から取られていますが、うまくいかず、404 ページが表示されます。
RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ $1.php [L,QSA]
RewriteCond %{REQUEST_URI} ^/(.*).php$
RewriteRule ^(.*)$ %1 [L,QSA]
すべての場合に URL からファイル拡張子を削除するには、htaccess ファイルに何が必要ですか? ありがとう