2

Apache の RewriteRule を使用して URL を書き換えたいサイトがあります。私が欲しい:

私の Mac には AMPPS がインストールされており、次の行を追加するhttpd.confと、正常に動作します。

RewriteEngine On
RewriteRule ^/p/(.*) /index.php?p=$1 [PT]

私は同じことをしようとしていますが、私のサーバー上です。同じApacheコードを追加しました/public_html/.htaccessが、以下のエラーメッセージが表示されます:

見つかりません
要求された URL /p/home がこのサーバーで見つかりませんでした。さらに、ErrorDocument を使用して要求を処理しようとしたときに、404 Not Found エラーが発生しました。

私のローカルホストサーバーでもまったく同じコードが機能します。私のウェブサイトにないのはなぜですか?

4

3 に答える 3

5

リモートサーバーのApacheが「AllowOverride All」をサポートしていることを確認できますか?

この方法も試してみてください。

RewriteEngine On
RewriteRule ^p/(.*) /index.php?p=$1 [PT]

ただし、 $_GET['p'] を適切に変更する必要がある場合があります。「ホーム」部分のみが送信されます。

于 2013-08-30T00:09:20.353 に答える
3

書き換えルールのパターンから先頭のスラッシュを削除する必要があります。書き換えエンジンが htaccess ファイル内のルールを適用すると、URI の先頭のスラッシュが削除されます。

RewriteEngine On
RewriteRule ^p/(.*) /index.php?p=$1 [PT]
于 2013-08-30T00:05:06.613 に答える
1
<IfModule mod_rewrite.c>

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.baileyseymour\.com
RewriteRule ^(.*)$ http://www.baileyseymour.com/$1 [R=301,L]

</IfModule>

.htaccess はそれらを配置する適切な場所であり、そのファイルはデフォルトのホームページと同じディレクトリにある必要があります。

于 2013-08-30T00:15:37.853 に答える