2011-12-21 6 views
8

私はURLのショートネーマーを構築しようとしています。ドメインの直後に任意の文字を取り、変数urlとして渡す必要があります。ですから、例えばmod_rewriteを使用してすべてのトラフィックをindex.phpにリダイレクトします。

ため

は、ここで私は今のmod_rewriteのために持っているものだが、私は400不正な要求を得続ける:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*) index.php?url=$1 [L,QSA] 
+1

実際のエラーの理由は 'error.log'を見てください。それ以外の場合は、 'RewriteLog'を設定してください。 – mario

+1

[Simple Mod Rewrite](http://stackoverflow.com/questions/7093190/simple-mod-rewrite) – mario

+0

-1:重複したデバッグが必要です。 @ marioのコメントを見てください。 –

答えて

11

^(.*)$

RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] 

編集で^(.*)を交換してみてください。私も同様の問題があり、rewrite-moduleを有効にすることで解決しました。それは私を助けた古い質問ですが、私は時間を失っ:

+0

私はそれを打ちましたが、依然として400 Bad Requestを取得します。今ログを見ても、価値あるものは見つけられないようです。 – bswinnerton

+1

@bswinnerton: 'index.php'の前に'/'を追加してみてください。更新された回答を確認してください。 –

+0

さて、もはやエラーはなくなりましたが、/ asdf =/ – bswinnerton

0

RewriteCondを使用して使用しなくても、それを試してみてください。 Apacheモジュールの下/index.php

RewriteRule ^(.*)$ /index.php?url=$1 [L,QSA] 
+0

私がRewriteCondをコメントアウトすると、私はまだ400のエラーを取得します。 – bswinnerton

+2

これら2つの 'RewriteCond'行は、実際に存在するファイルやフォルダが書き換えられないようにするための行です。たとえば、イメージが存在する場合、 'http:// example.com/images/logo.png'は書き換えられません。 –

+0

@Rocket今後の参考にしておくとよいでしょう。私は与えられた情報を使って作業していました。 – PseudoNinja

-1

チェックしてindex.phpを交換してみてくださいと書き換えモジュールが有効になっていることを確認してください:

+0

これまでに返答してきた超古い質問にはどうしたらいいですか? –

1

ByTheWayは

sudo /etc/init.d/apache2 restart 

編集のapache2をUbuntuの

sudo a2enmod rewrite 

上のApacheで、モッズ書き換えを有効にしてから再起動することを忘れないでください私のapache2.confファイルを一方の側でテストし、他方の側の.htaccessファイルとまだ光をテストしていません。あなたが使用することができます/index.phpにすべての要求を書き換えるために

0

、:それは私たちが書き換えされている書き換え先を除外し、無限ループのエラーを防ぐよう

RewriteEngine on 


RewriteCond %{REQUEST_URI} !^/index.php$ 
RewriteRule ^(.+)$ /index.php?url=$1 [NC,L] 

RewriteCondition RewriteCond %{REQUEST_URI} !^/index.php$が重要です。

関連する問題