私は過去2〜3時間この作業をしようとしてきましたが、私は単に正規表現の知識が十分ではありません。ポイント文字列をphpのページとクエリ
私はURL短縮を作成しようとしているので、私はdomain.com/view.php?s=d5Ds93X
のようなものにdomain.com/d5Ds93X
のようなURLを指すようにしたい、私は私の.htaccessファイルをいじり、今これを持ってきた:
RewriteEngine on
RewriteBase/
RewriteRule /(.*?)$ /view.php?s=$1 [L]
この種の作品は、正しいファイルを指していますが、文字列(d5Ds93X)は渡されません。 URLを訪問するとき、私はちょうど空白のページを取得
<?php
if (isset($_GET['s']) && ctype_alnum($_GET['s'])) {
echo $_GET['s'];
}
?>
:私のview.php
ファイルには、この(テスト目的のために)のように見えます。しかし、if
ルールの前に何かをエコーすると、ページが正しく動作するように表示されます。 GETのデータも渡されますか?または、URL内のデータを検出するコードを追加する必要がありますか?
完璧、ありがとう、ロード!完璧に動作します。あなたは '^ /?($ +)$ 'の各部分が何を意味するのかを説明できます。そして私はそれを推測しています。私は/ admin /別のページにリダイレクトしたいのですが、私はそのルールを書き換える前に[L]を使って他のルールを見ていないようにしていますか? – s1h4d0w
'^ /?'開始時に '/'をオプションにします。 '(。+)'は任意の文字のうちの1つ以上と一致し、最後に '$ 'は入力の終わりを表します。 – anubhava
@ s1h4d0w答えがあなたの問題を解決する場合はそれを受け入れてください。 –