0
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+)
RewriteRule ^ http%2://%3%{REQUEST_URI}/site1 [L,R=301]

RewriteRule ^/site1/catalogue/(\w+)/([0-9]+)$ catalogue.php?category=$1&product_id=$2 [QSA,L]

mod_rewrites で問題が発生しています。私は3つのことを達成しようとしています:

1) www を削除します。URLから

2) .php 拡張子を削除します

3) $_GET 変数 (クエリ文字列?) を含むクリーンな URL を用意する

たとえば、次の URL が必要です。

http://www.domain.com/site1/catalogue.php?category=kitchen&product_id=2

これに変わりました:

http://www.domain.com/site1/catalog/kitchen/2

4

1 に答える 1

0

はい、私の.htaccessファイルはsite1フォルダー/ディレクトリ内にあります。クリーンアップされたURLを入力しても、正しくリダイレ​​クトされていないようです。404を取得しています。問題はクエリ文字列の最後の書き換えルールだと思います。

最後のルールを次のように変更します。

RewriteRule ^catalogue/(\w+)/([0-9]+)$ catalogue.php?category=$1&product_id=$2 [QSA,L]

/site1/正規表現の一致からを削除します。RewriteEngine Onまた、 :の直後にこれを追加します。

RewriteBase /site1/
于 2012-08-31T18:08:59.780 に答える