2

作業中の Web サイトに次の RESTful URL を使用したいと考えています。

http://mysite.com/Products/category=bags&colours=black

.htaccessでこれを達成する方法を教えてください。

オスカー

4

1 に答える 1

6

ファイルまたはディレクトリが競合し、/ index.phpにルーティングされる場合を除いて、すべてをキャプチャするための.htaccessは次のとおりです。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

これで、リクエストルーターとして/index.phpを使用できます。PHPでは、次のようなリクエストを取得するだけです。

<?php
$url_path = $_SERVER['REQUEST_URI'];
// Parse your URL path here...

とは言うものの、あなたのURLパターンは非標準であり、プロキシとブラウザはアンパサンドと等号をURLエンコードするので、私はそれに対して本当にお勧めします。代わりに、次のいずれかを提案します(また、URLの検証に役立つので小文字を使用します)。

http://example.com/products/categories/bags/colours/black
http://example.com/products/category_bags/colours_black
http://example.com/products?category=bags&colours=black
http://example.com/products/categories/bags?colours=black
http://example.com/products/bags?colours=black

URLのパスに何がエンコードされるかを確認するには、Googleで検索し、Googleの検索URLを確認してください。

お役に立てれば。

-マイク

于 2010-08-15T19:26:50.200 に答える