1

Web サイトのルートには 3 つのディレクトリが含まれており、a,b,cすべてが異なるドメインのルートとして機能します。

.htaccessディレクトリに作成bし、次のルールを追加しました

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteRule ^([^/]*)/?([^/]*)/$ /b/sample-page?bbi=$1&bbl=$2 [L]

上記の最後の行の代わりに、私も試しました

RewriteRule ^b/([^/]*)/([^/]*)$ /b/sample-page?bbi=$1&bbl=$2 [QSA,L]

上記のルールを使用する

http://testsite.com/b/pageone.phpとして正常に書き換えられます

http://testsite.com/b/pageone

しかしhttp://testsite.com/b/sample-page.php?bbi=value1&bbl=value2

http://testsite.com/b/sample-page?bbi=value1&bbl=value2代わりに

http://testsite.com/b/sample-page/value1/value2 また

http://testsite.com/sample-page/value1/value2
4

1 に答える 1

1

L他のルールにフラグを追加する必要があります。

RewriteRule ^(.*)$ $1.php [L]

他の状況を処理するには、その前にルールを追加する必要があります。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/b/([^/]+)/([^/]+)/([^/]+)
RewriteCond %{DOCUMENT_ROOT}/b/%1.php -f
RewriteRule ^/?([^/]+)/([^/]+)/([^/]+) $1.php?bbi=$2&bbl=$3 [L]

これにより、 にアクセスするとhttp://testsite.com/b/sample-page/value1/value2、 のコンテンツが提供されるようになります。/b/sample-page.php?bbi=value1&bbl=value2

于 2012-10-05T19:54:42.660 に答える