1

すべてのWebサイトのURLを書き直そうとし始めたばかりですが、これがわかりません。私のhtaccessファイルには、次のコードがあります。

RewriteEngine On
RewriteBase /
RewriteRule ^tjanster/([^/.]+)/?$ tjanster.php?page=$1 [L]

たとえば、リンクをクリックすると

<a href="tjanster/rackochskapbyggnation/tjanster.php?page=design">Design</a> 

行くべきmypage.com/tjanster/designですが、まだ行きません

mypage.com/tjanster/rackochskapbyggnation/tjanster.php?page=design

ただし、mypage.com/tjanster/designURLに直接書き込むと、そのページに移動します。

4

3 に答える 3

1

いいえ、このようには機能しませんが、その逆です。

<a href="tjanster/design">Design</a>

につながるだろうtjanster/rackochskapbyggnation/tjanster.php?page=design

mod_rewriteのアイデアの1つは、そのような存在しないURI要求を処理し、それらを既存のURIに変換して、所有しているURLをきれいにしたり、特定のURLを非表示にしたりすることです。

于 2013-03-15T10:31:30.223 に答える
0

それを理解するにはPHPで実験する必要がありますが、直接アクセスしたときにPHPを有効なURLにリダイレクトすることもできます。

そのコードは次のようになります。

<?php
if (preg_match('~^/tjanster/rackochskapbyggnation/tjanster\/.php~i', $_SERVER['REQUEST_URI'])) {
    if (isset($_GET['page'])) {
        header('Location: /tjanster/' . $_GET['page']);
    } else {
        header('Location: /tjanster/');
    }
    exit;
}

このコードはREQUEST_URI変数を調べて、要求されたURLがスクリプトに直接アクセスされているように見えるかどうかを確認し、アクセスされている場合は、適切なページ構造にリダイレクトします。また、書き換えルールをそのままにしておく必要があります。

于 2013-03-15T10:34:58.160 に答える
0

これを試して :

RewriteRule tjanster.php?page =(。*)tjanster / $ 1 [L]

最初のパラメータは入力uriであり、2番目にそれを書き換える方法$ 1は()内のデータを参照します

于 2013-03-15T10:38:03.060 に答える