2016-09-16 24 views
0

私の問題は、.htaccessファイルの独自のルールを作成したいのです。私はインターネットを検索しましたが、自分のルールを書く方法を私に教えていませんでした。私が知っているのは、正規表現を使用しているということだけです。私は正規表現の知識がほとんどありません。URLをすべて小文字に書き換え、.htaccessファイルを使用してURLをホームページにリダイレクトします。

私は、私は次のリンクを持っている探しています

http://example.com/work/project-1 
http://example.com/work/project-2 

ユーザーが、私は彼らが

(小にすべて大文字に変換)にリダイレクトしたいこの

http://example.com/work/PrOJect-2 

のように入力すると、

http://example.com/work/project-2 

ユーザーがこのように入力したとき

http://example.com/work/ 

または

http://example.com/work 

私はホームページにリダイレクトしたいです。そうするために

は、私はこれらのルールを書くために私を助けてください

RewriteEngine On 
RewriteRule ^work(.*)/([^/]*) work-single.php$1?slug=$2 [QSA] 

のようないくつかのルールを持っているのhtaccessファイル を持っています。

+0

私は編集の.htaccessに精通していないですが、あなたが入力したURLに基​​づいてリダイレクトするようですがお役に立てば幸いです短縮されたサイトは、入力されたURLを見てphpで書かれたmysqlデータベースと比較し、リダイレクト - それはあなたにいくつかのアイデアを与えるかもしれません – kerry

答えて

0

あなたが達成しようとしているものは、URL書き換えと呼ばれます。ここで

は作業.htaccessファイルの例です:

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

設定上記の規則を使用した結果は、リクエストからの完全なURLはindex.phpにサーバー側に渡されているということです、文字列が使用フェッチすることができる。ここで

$urlString = $_GET['url_params']; 

、さらに処理、トークンの配列に文字列をスライス例えば:

$urlTokens = explode('/', $urlString); 

foreach($urlTokens as $token){ 

    // do something with each token 

} 

最後に、トークンを分析します(ほとんどの人が実際に手動で行うことは、これを自動的に処理するフレームワークを使用するためです)。例えばZendフレームワーク)、それぞれの有効な "トークン"に対して適切なアクションを実行します(現代のフレームワークではこれを "ルーティング"と呼びます)。

、あなたがチェックすることができ、セットアップURLの書き換えをする方法についての完全なチュートリアルについては

https://code.tutsplus.com/tutorials/using-htaccess-files-for-pretty-urls--net-6049

それはかなりまっすぐ進むこと、または完全に複雑にすることができます - あなたのニーズによって異なります。

これは単なる例であり、正確な状況では機能しない可能性があることに注意してください。必要に応じてカスタマイズするか、少なくともそれから学び、問題を解決してください。

このテーマについて詳しく読むことをお勧めします。テクニックを使いやすくすることをお勧めします。http://yourls.org/これを見ては、リンクされてい -

は、それが少し

関連する問題