1

オンラインでいくつかのチュートリアルを読んで、ここで他のいくつかの質問を検索しましたが、HTACCESS ファイルを使用した動的 URL の書き換えを理解できないようです。

次のような URL があります。

products.php?cat=2
products.php?cat=3
products.php?cat=4

たとえば、products/2とだけ言ってほしい

equipment.php?cat=2&subCat=1
equipment.php?cat=2&subCat=2
equipment.php?cat=2&subCat=3

たとえば、機器/2/1と言ってほしい

product.php?id=3010-Z89CH24

たとえば、product/3010-Z89CH24 と言ってほしい

しかし、これまでのところproducts.phpページを変更しようとしているだけです:

    RewriteEngine On
RewriteCond %{HTTP_HOST} ^*******\.com [NC]
RewriteRule (.*) http://www.*******.com/$1 [L,R=301]

Options +FollowSymLinks

RewriteRule ^products/'^([1-9][0-9]{0,2})'$ http://www.*******.com/products.php?cat=/$2 [L] 
# REMOVE PHP EXTENSIONS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L,QSA]

問題は、最後の部分「/ $ 2」が正しいとは思わず、残りの部分もわからないということです:/

いずれにせよ、私にとってはうまくいかず、私はそれを理解するのに苦労しています:(

誰かが私を助けてくれますか?

4

3 に答える 3

1

有効mod_rewriteにし.htaccessてからhttpd.conf、次のコードを DOCUMENT_ROOT/.htaccessファイルに入れます。

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

## If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
## If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f [OR]
## If the request is for a valid link
RewriteCond %{REQUEST_FILENAME} -l
## don't do anything
RewriteRule ^ - [L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^.]+)\.php\?cat=([^\s&]+)&subcat=([^\s&]+)\s [NC]
RewriteRule ^ /%1/%2/%3? [R=301,L]

RewriteRule ^([^/.]+)/([^/]+)/([^/]+)/?$ /$1.php?cat=$2&subcat=$3 [L,QSA]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^.]+)\.php\?cat=([^\s&]+)\s [NC]
RewriteRule ^ /%1/%2? [R=301,L]

RewriteRule ^([^/.]+)/([^/]+)/?$ /$1.php?cat=$2 [L,QSA]
于 2013-09-26T13:59:02.660 に答える
0

問題は、正規表現が間違っていることです。キャプチャ グループの言及に注意しながら、ある種の基本的な正規表現のチュートリアルをチェックすることをお勧めします。

チェックせずに、数字ベースの制限が正しいと仮定すると、次のようなルールが必要だと思います。

RewriteRule  ^/products/([1-9][0-9]{0,2})$  /products.php?cat=$1 [L]

既存のクエリ文字列を保持する必要がある場合は、おそらく QSA フラグも必要になるでしょう。

于 2013-09-26T13:54:30.723 に答える
0

これがあなたに役立つことを願っています...

http://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/

PHPによるURL書き換え

于 2013-09-26T13:48:19.663 に答える