0

次の .htaccess ファイルがあります。

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^project/([0-9]+)/([a-zA-Z0-9]+)/(.+)?$ project.php?id=$1&pName=$2&urlPram=$3  [L,NC]

</IfModule>

私のURL形式が次のような場合:

mysite.com/project/1/test/vw

すべて正常に動作します。ただし、URLが他の形式で入力された場合は、最初の形式に書き換えたいと思います。つまり、次のように URL を入力すると:

mysite.com/project.php?id=1&pName=test&urlParam=vw

私はそれを次のように変えたい:

mysite.com/project/1/test/vw

別のルールを作成する必要がありますか? それとも他の方法で達成されますか?

4

2 に答える 2

0

外部リダイレクト ルールがもう 1 つ必要です。次のコードを使用します。

<IfModule mod_rewrite.c>

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteCond %{THE_REQUEST} /project\.php\?id=([^&]+)&pName=([^&]+)&urlPram=([^&\s]+) [NC]
RewriteRule ^ project/%1/%2/%3? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^project/([0-9]+)/([a-zA-Z0-9]+)/(.+)?$ project.php?id=$1&pName=$2&urlPram=$3 [L,NC,QSA]

</IfModule>
于 2013-08-15T20:39:55.647 に答える