2016-04-10 20 views
1

との最後のスラッシュCodeigniter 3の後続のスラッシュを処理する最善の方法は?ハンドルは、私は以下のようにURLで記事のデータベースを持っているCodeIgniterの3

これは私がこれまで/テストを行っているものです:

echo site_url('person/albert-einstein/'); # http://localhost/person/albert-einstein        
echo base_url('person/albert-einstein/'); # http://localhost/person/albert-einstein        
echo site_url('person/albert-einstein/1'); # http://localhost/person/albert-einstein/1     
echo base_url('person/albert-einstein/1'); # http://localhost/person/albert-einstein/1 

その後、私は設定しconfig.php編集:

$config['url_suffix'] = '/'; 

して、再度URLを印刷する:

echo site_url('person/albert-einstein/'); # http://localhost/person/albert-einstein/        
echo base_url('person/albert-einstein/'); # http://localhost/person/albert-einstein        
echo site_url('person/albert-einstein/1'); # http://localhost/person/albert-einstein/1/    
echo base_url('person/albert-einstein/1'); # http://localhost/person/albert-einstein/1 

今末尾にスラッシュを付けてURLを印刷するには、site_url()またはbase_url()を選択してください。それなし。しかし今私の見解では、私が使用するものには非常に注意する必要があります。私は、渡したURLを尊重し、後にスラッシュをつけて返します。それを持っている。

はい、私は間違いなくヘルパーを拡張して、次のような関数を書くことができます:print_url()これは私が望むことをしますが、私はここに欠けているものがあるかどうかを見たいと思っていました。ありがとうございました。

答えて

0

あなたは末尾のスラッシュを強制するためにApache REWITEルールを使用することができます。

RewriteCond %{REQUEST_URI} /+[^\.]+$ 
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] 

末尾を除去するために使用できるスラッシュ:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} (.+)/$ 
RewriteRule^%1 [R=301,L] 

私は.htaccessスニペットのこのgood baseを使用。

+0

私の質問に興味をお持ちいただきありがとうございますが、私は、私のサイトのさまざまなセクションに**スラッシュと**スラッシュをつけずに** URLを使用しています。ですから、あなたの 'mod_rewrite'を使った解決法は、私の友人のこの質問に実際には当てはまりません。 :-) – gglasses

+0

私はこの要求に従いました: "私は、私が渡したURLを尊重し、もしそれがなければ追加しなければ後続のスラッシュで返します。"最初のスニペットで許可されています。 – Tpojka

関連する問題