1

www.example.com/page_name.php?var1=dynamic_var1&var2=dynamic_var2というページがあります

.htaccessファイルを使用して次のようにしますwww.example.com/page_name/dynamic_var1/dynamic_var2

私はこれまでこれを試しました

RewriteRule ^page_name/(.*)/(.*)$ page_name.php?var1=$1&var2=$2 [NC]

問題は、これがデータベースに送られるとき、次のようになることです。

SELECT * FROM table_name WHERE id=dynamic_var1/dynamic_var2.php/dynamic_var1 LIMIT 1

そして私もこれを試しました

RewriteRule page_name/(\w+)/(\w+) page_name.php?var=$1&var2=$2

ページを読み込んでいますが、画像やcssファイルなどがなく、firebugを使用すると、指定されたURLを読み込めないと表示されました。

そして私がこれを試したとき

RewriteRule ^page_name/(\w+)/(\w+)$ page_name.php?var=$1&var2=$2

内部サーバーエラーが発生しました

前もって感謝します、

4

1 に答える 1

1

.htaccessファイル内から URL を分割しようとしないでください。index.phpクエリ文字列全体を自分のスクリプトまたは他のスクリプトに単純に渡して、そこでリクエストを解析してみませんか...

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

はるかに簡単な方法は、すべてのリクエストを次のindex.phpようなファイルにリダイレクトすることです-

index.php-

与えられたhttp://yourdomain.com/user/123

$originalURL = $_GET['url'];
$URLParts = explode('/',$originalURL);

今、あなたはの中にいます$URLParts

Array (
 'user',
 '123'
)

これらの値を SQL クエリに簡単に配置できるようになりました。

ただし、SQL インジェクションには注意してください。常に使用mysql_real_escape_string()し、受信データをサニタイズしてください...

于 2012-05-19T15:30:23.503 に答える