1

mod_rewriteを使用して、「url.com/foo」などのサイトを「url.com/index.php?site=foo」に書き換えています。

コード:

RewriteEngine On
RewriteBase /
RewriteRule ^([0-9a-zA-Z]+)$ index.php?site=$1

href = "/ foo"のリンクをクリックすると、

http://url.com/foo/?site=foo

コードは同じVサーバー上の他のサイトで機能します。ボイラープレートがインストールされていますが、mod_rewriteを修正するために現在その.htaccessを使用していないので、ボイラープレートの問題ではありませんか?

次のコードも試しました。

RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ index.php?site=$1

そのコードは、少なくともindex.php?site = fooに書き換えられますが、それでも上の例のようなURLを作成し、その間に不要なフォルダーがあります。

編集:全員が全体的なアイデアを理解していることを確認します:

ファイルはhttp://url.com(index.php、.htaccess)に基づいているので、RewriteBaseを「/」に設定します。次のようなリンクが必要です

http://url.com/foo

そしてそれらをに書き直します

http://url.com/index.php?site=foo

フォルダは含まれていません。

4

2 に答える 2

1

私はそれを解決しました、くそー私はとても愚かです;)

私はというフォルダを持っていて、url.com/foo/imリダイレクトするリンクurl.com/foourl.com/index.php?site=foo常にそのフォルダに入ろうとしているのです。フォルダの名前を変更したので、非常にうまく機能しています。

于 2013-01-22T17:31:13.860 に答える
0

RewriteRuleで同様のエラーメッセージが表示されます

pcfg_openfile: unable to check htaccess file, ensure it is readable

リダイレクトされたURLの部分に似たサブフォルダー名もありますが、名前を変更しても問題は解決しませんでした(Chrisの提案による)。

複数回試行した後、サブフォルダーのアクセス許可を755に更新することで問題が解決しました(cPanelフォルダーのアクセス許可ダイアログを使用):

User:  Read, Write, Execute
Group: Read,        Execute
World: Read,        Execute

PS:名前の変更の前後でエラーメッセージが同じだったので、このシナリオでサブフォルダーの名前の変更が実際に必要かどうかはわかりません。

于 2017-10-31T07:58:50.443 に答える