2016-03-28 12 views
0

Mod_Rewriteを使用して次のURLを変更するにはどうすればよいですか?.htaccess mod_rewriteを使用して以下を変更する方法

main/order/$var to /$var

/.index.php/$varから/$varに書き換えるには既に.htaccessを使用しています。これはコード署名者の設定です。したがって、完全なURLは/.index.php/main/order/$varになります。これを微調整しようとしたとき、私はmisconfugurationのエラーが発生します

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt|css|js|stats) 
RewriteRule ^(.*)$ /index.php/main/order/$1 [L] 

は、ここに私の現在のファイルです。

+0

さて、なぜあなたは、単に既存のパターンを拡張しないと、次のようにあなたがそれを言うことから、routes.phpの設定する必要がありました:私は、これは次の.htaccessを使って作業しましたあなたはそれを変更したいだけです。あなたはすでにどのように知っています。 – arkascha

+0

ここに実際に問題がある場合は、名前を付けてください。既存のコードを投稿してください。 – arkascha

+0

現在のファイルを追加しました。先を含めて申し訳ありません。ありがとう – akes406

答えて

0

私は混乱しています。.htaccessスタイルファイルの作業バージョンを投稿したと主張していますが、これはあなたの試行とよく似ています。 RewriteRuleindex.phpは私には面白いに見える(しかし、私はCodeIgniterのよく知っていない)、そしてそれは確かにがルックスであなたのRewriteRuleそのRewriteCondRewriteRule ...

、両方に表示されません

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^(index\.php|images|robots\.txt|css|js|stats) 
RewriteRule ^(.*)$ /index.php/main/order/$1 [L,QSA] 
+0

上記の使用時に500の内部サーバーエラーが発生しました。 Apacheログからのエラー:AH00124:構成エラーの可能性があるため、要求が内部リダイレクトの制限を10回超えました。必要に応じてLimitInternalRecursionを使用して制限を増やしてください。バックトレースを取得するには、 'LogLevel debug'を使用します。 – akes406

+0

申し訳ありませんが、このようなリダイレクトループを防ぐには、条件内の 'index.php'を忘れてしまいました。今すぐ動作するはずです:-) – arkascha

0

これは、ユニークなCodeIgniterのシナリオであることが判明:罰金、私はRewriteCondことを使用することをお勧めします。

RewriteEngine on 
RewriteCond $1 !^(index.php|images|robots\.txt|css|js|stats) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

私はその後、

$route['main'] = 'main/order'; 
$route['(:any)'] = 'main/order/$1'; 
+0

"RewriteCond"の意味はまだありませんが、とにかく、あなたが望むことをすれば、素晴らしいことです! – arkascha

関連する問題