2016-06-11 2 views
1
私はそれはURLが作ることができるミニブログを作っています

は次のようになります。PHP - htaccessファイルとして偽のディレクトリ

From: http://127.0.0.1/index.php?post=the-story-of-us 
To: http://127.0.0.1/view/the-story-of-us 

が、私はこれを試してみましたが、私は404 not found.

RewriteEngine on 

RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /index\.php\?post=([^&]+) 
RewriteRule^/view/%2/? [L,R=301] 

答えて

0

私はを取得していますRewriteRuleは次のようになります。

RewriteEngine on 
RewriteBase/

RewriteRule ^view/(.*)/? ./index.php?post=$1 [L,R=301] 
+0

のようになります方法です。手動でURLを入力した場合は、スペルを確認してもう一度お試しください。 – Jacob

+0

@Jacob私は自分の答えを更新しました。 (特に/ビューの最初から削除された) – Petr

0

あなたの現在のルールのみh andlesケース:リダイレクト古いURLから新しいURL
(ところで、リダイレクトループを避けるためにTHE_REQUESTを使用するための1)

あなたはまた、ケースを処理する必要があります。(内部)を書き換え新しいURLに古いURL。要求されたURLは、このサーバ上で見つかりませんでした。ここで
は、あなたのhtaccessファイルは、私はまだこれを取得しています

RewriteEngine On 

# Redirect /index.php?post=XXX to /view/XXX 
RewriteCond %{THE_REQUEST} \s/index\.php\?post=([^&\s]+)\s [NC] 
RewriteRule^/view/%1? [L,R=301] 

# Internally rewrite back /view/XXX to /index.php?post=XXX 
RewriteRule ^view/([^/]+)$ /index.php?post=$1 [L] 
関連する問題