0

私のhtaccessファイルには

RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]+\s([^\s]+)\.php\s
RewriteRule .* %1.html [R=301,L]
RewriteRule ^(.*)\.html$ $1.php
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^.*$ - [L]
RewriteRule ^index.php$ http://%{http_host}/ver1 [R=301,L]

そしてそれはうまくいきます

しかし、私のフォームアクションは .php ファイルを指す必要があります

form.php が書き換えられないようにするにはどうすればよいですか?

ファイル form.php を form.html に書き換えたくない

4

1 に答える 1

0

最初の行の直後にこのコードを試してください:

RewriteCond %{REQUEST_URI} !^(.*)form.php(.*)$

このコードは、リクエスト文字列に「form.php」があるかどうかをチェックし、ある場合は次のRewriteRule のみを中止します。

編集:わかりました、私のせいです、私は2つの書き換えルールを次々とミスしました。私はあなたのコードをより良い形式と説明にフォーマットします..だから、これを試してください:

RewriteEngine on

# 1st rule
RewriteCond %{REQUEST_URI} !^(.*)form.php(.*)$
RewriteCond %{THE_REQUEST} ^[A-Z]+\s([^\s]+)\.php\s
RewriteRule .* %1.html [R=301,L]

# 2nd rule
RewriteCond %{REQUEST_URI} !^(.*)form.html(.*)$
RewriteRule ^(.*)\.html$ $1.php

# 3rd rule
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^.*$ - [L]

# 4th rule
RewriteRule ^index.php$ http://%{http_host}/ver1 [R=301,L]
于 2012-09-06T12:29:55.883 に答える