2

私はリダイレクトしようとしています:

入力した URL:

http://localhost/Test/Test1/key/val

次のアドレスに移動しますが、以前の URL を示しています。

http://localhost/Test/Test1/Test1.php?key=val

.htaccessファイルは にあります/Test

私はこれを持っていますが、常に HTTP エラーが発生します404 NOT FOUND:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^([^/]*)/([^/]*)/([\w]+)$ [NC]
RewriteRule ^(.*)$  /%1.php?%2=%3 [L]

これを検索しましたが、解決された同様の問題が見つかりませんでした。

ルールを適切に変更するための助けをいただければ幸いです

4

2 に答える 2

1

あなたのルールにはいくつかの問題があります。

.1 書き換え条件の正規表現が一致しません。

.2 入力された URI の末尾にスラッシュがある場合、スクリプトはクエリ文字列を取得できませんvalval/

.3 ループを防ぐものは何もありません。

これを試すことができます:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} (.*)[^/]*/([^/]*)/([^/]*)/([\w]+)/? [NC]
RewriteCond %{REQUEST_URI} !\.php  [NC]
RewriteRule .*  %1/%2/%2.php?%3=%4 [L]

それがあなたが必要とするものであることを願っています。

于 2012-12-17T10:28:05.433 に答える
0
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^([^/]*)/([^/]*)/([\w]+)$ [NC]
RewriteRule ^(.*)$  /Test1/%1.php?%2=%3 [L]
于 2012-12-17T10:12:22.220 に答える