0

これらの URL を .htaccess ファイルで変更する

website.com/b.php?g=666からwebsite.com/666

website.com/g/2/1.gifからwebsite.com/2/1

これはどのように行われますか

これを行う方法を学ぶための簡単な例も?

ありがとう

4

2 に答える 2

0

http://website.com/666toのリクエストを内部的に書き換える場合/b.php?g=666:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /b.php?g=$1 [L]

http://website.com/2/1toのリクエストを内部的に書き換える場合/g/2/1.gif:

RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/?$
RewriteCond %{DOCUMENT_ROOT}/g/%1/%2.gif -f
RewriteRule ^ /g/%1/%2.gif [L]
于 2012-12-18T21:10:52.800 に答える
0

これをあなたの中に入れることができます.htaccess

RewriteEngine On
RewriteRule ^([^/]*)$ /b.php?g=$1 [L]

最初のパターンを機能させるために。単に動作させるだけでなく (任意のb.phpPHP ファイルで動作させたい) 場合は、必要に応じてルールを変更できます。(質問では、規則がどの程度一般的であるべきかを指定していませんでした。)

機能するかどうかは、メインの httpd.conf ファイルでそのような設定が有効になっているかどうかによって異なります。つまり、ファイルで書き換えエンジンを使用できないように Apache が設定されている可能性があり.htaccessます。YMMV。

これらがどのように機能するかを理解するには、Apache のドキュメント、特にこのページの例を参照してください。

rewrite rule generatorのようなものを使って運試しをすることもできますが、生成されたルールが何をするかをある程度理解できるように、ドキュメントも読むことをお勧めします。

2番目のものはこれでうまくいくかもしれません:

RewriteEngine On
RewriteRule ^([^/]*)([^/]*)$ /g/$1/$2.gif [L]

(もちろん、最初のものも使用している場合は、"RewriteEngine On" を 2 回使用する必要はありません。)

于 2012-12-18T16:37:52.013 に答える