-1

http://www.freshmarketstores.com/departments/produce/recipe.php?ing=Akane_Apples&recipe=59次のようにクリーンアップしたいURLのページがありますhttp://www.freshmarketstores.com/departments/produce/recipe/Akane_Apples/59

現在、produceフォルダーにある.htaccessファイルには、次のコードがあります。

RewriteEngine on
RewriteRule ^recipe/(.*)/(.*)$ recipe.php?ing=$1&recipe=$2 [L]

現在、これは何にも影響しません。URLが読み込まれると、recipe.php?ing=Akane_Apples$recipe=59正常に読み込まれますが、書き換えは行われません。これはURL書き換えの私の最初の試みであり、これを理解することはできません。

よろしくお願いします。

編集: さて、昨夜の学習の後、私はこれに逆行していたことに気付きました。http://www.freshmarketstores.com/departments/produce/recipe/Akane_Apples/59と入力して、... /produce / recipe.php?ing = Akane_Apples&recipe=59に保存されているリソースを取得できます。それについてのあなたのすべての助けに感謝します。

今の私の質問は、あなたは反対の方向に行くことができますか?... /produce /とrecipe.php?ing = Akane_Apples&recipe = 59と入力した場合、どうすれば/produce/とrecipe/Akane_Apples / 59にリダイレクトできますか?

4

3 に答える 3

1

あなたが持っていることを確認してください

AccessFileName .htaccess

サーバーでのセットアップとapacheでの仮想ホスト構成ファイルのデフォルトは.htaccessに設定されていますが、これだけに制限されるわけではなく、任意の名前を付けることができます。

Debianベースのシステムのデフォルトの設定ファイルは、apacheインストールディレクトリにある/etc/apache2/apache2.conf他のほとんどのシステムです。httpd.conf

アクセスファイルがセットアップされ、mod_rewriteが有効になったら、次のように実行できます。

http://www.freshmarketstores.com/departments/produce/Akane_Apples/59

RewriteEngine On
RewriteRule ^recipe/([^/]*)/([^/]*)$ /recipe.php?ing=$1&recipe=$2 [L]
于 2012-10-30T20:39:36.540 に答える
0

あなたは大丈夫なはずです

RewriteEngine on
RewriteCond %{THE_REQUEST} \?ing=([^&]+)&recipe=([^&]+) [NC]
RewriteRule ^(departments/produce/recipe)\.php$ http://%{HTTP_HOST}/$1/%1/%2 [NC,R=301,L]
于 2012-10-30T21:05:52.487 に答える
0

mod_rewrite と .htaccess を有効にしてからhttpd.conf、このコードをディレクトリの.htaccess下に配置します。DOCUMENT_ROOT

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

# internal forwarding to /recipe.php
RewriteRule ^recipe/([^/]+)/([^/]+)/?$ recipe.php?ing=$1&recipe=$2 [L,QSA,NC]

# external redirect to /recipe
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+recipe\.php\?ing=([^&]+)&recipe=([^\s]+) [NC]
RewriteRule ^ recipe/%1/%2? [R=301,L]
于 2012-10-30T20:48:07.037 に答える