0

だから私はApacheのmod_rewriteがどのようにトリックを行うかについての記事を読みましたが、私のような初心者にはあまりにも漠然としているようです.

site.com/userpage.phpを site.com/ またはsite.com/userpageにマスクしたいとしましょう

またはgetリクエストを削除することさえ..

site.com/userpage.php?query=yesからsite.com/userpage.phpまたはsite.com/userpage

htaccess または他の方法を使用して、どうすればそれを行うことができますか?

みんなありがとう

4

2 に答える 2

0

.htaccessまず、書き換える前に次の行を忘れずに入力してください。

RewriteEngine on

URL を変更せずに存在するかどうかをsite.com/something表示するには、次のようにします。site.com/something.php

RewriteCond %{REQUEST_URI}.php -f
RewriteRule .* %{REQUEST_URI}.php

[file you requested].php が存在する場合は表示されますが、入力した同じ URL が表示されます。php ファイルが存在しない場合でも、必要に応じて 404 が表示されます。(それ-fが目的です。)

GET リクエストを完全に隠す方法はありません。GET リクエストを取り除くことはできますが、スクリプトでも使用できなくなり、意味がありません。ただし、見栄えを良くすることはできます。たとえばsite.com/userpage/item/30、 のコンテンツを表示する場合はsite.com/userpage.php?item=30、次のようにします。

RewriteRule ^/userpage/item/(.*)$ userpage.php?item=$1

次のようなルールを使用して、任意の GET 値で機能させることもできます。

RewriteRule ^/userpage/(.*)/(.*)$ userpage.php?$1=$2

site.com/userpage.php?query=yesこれにより、代わりにwith でアクセスできますsite.com/userpage/query/yes。それはあなたができる最善のことです。GET 値は何らかの方法で URL から取得する必要があるため、入力を完全に隠したい場合は、代わりに POST を使用する必要があります。

于 2010-08-12T04:08:10.947 に答える
0

GET リクエストを追加したくない場合は、POST を使用してみませんか?

また、MultiViews を使用して、/userpage.php を /userpage としてアクセスできるようにすることもできます。

Options Indexes FollowSymLinks Includes MultiViews

MultiViews が動作する方法は、userpage という名前のディレクトリをチェックし、何も見つからない場合はファイルに移動します。userpage という名前のディレクトリもある場合に備えて注意してください。

于 2010-08-10T20:08:15.933 に答える