2017-10-02 6 views
0

URLを既存のファイルに動的に書き換えようとしています。 これは、静的な例です:.htaccessはCookie変数に基づいてURLを書き換えます

DirectoryIndex load.php live.php 
Options +FollowSymlinks 
RewriteEngine On 

RewriteRule ^cole$ live.php 

予想通り、これは同じルートの任意のページがcoleを呼び出したときに、それはlive.phpにリダイレクトし、正常に動作します。

ここで、live.phpページにリダイレクトしますが、coleをCookieの動的値に置き換えます。

私はこれを試してみました:

DirectoryIndex yosh.php 

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_COOKIE} cookieName=([^;]+) [NC] 

RewriteRule ^(.*)$ pimp.php [QSA,L] 

それは仕事をdoen't、ちょうど404ページが見つかりませんが表示されます。私はWAMPを使用することに注意してください。

どうすればいいですか?あなたが使用することができます

+1

あなたのコードは、必要なものを行うには表示されませんが、しかし、あなたは、404を取得すべきではありませんか?そのコードは_y_ URLに 'cookieName'が_something_に設定されている場合、URLを書き換えます。したがって、これが機能しない場合は、最初にデバッグします(より複雑なコードは確実に機能しないため)。 _positive_値でリクエスト内の 'cookieName'を見ることができますか? – MrWhite

+1

_Aside:_ 'DirectoryIndex'を変更する理由はありますか?単に 'pimp.php'を' DirectoryIndex'として設定する必要はありません。 – MrWhite

+0

htaccessファイルと同じディレクトリに@MrWhite、pimp.phpが存在します。 'DirectoryIndex'は' yosh.php'にのみ適用されます。以前のテストから 'pimp.php'を1行目にしましたが、結果には関係ありません。 – Origin

答えて

1

: `/ pimp.php`が存在する場合

RewriteCond %{HTTP_COOKIE} cookieName=([^;]+) [NC] 
RewriteCond %{REQUEST_URI} /%1/?$ [NC] 
RewriteRule^/sub/pimp.php [QSA,L] 
+0

ok、あなたのコードを試しましたが、同じ結果、url 'http://localdomain.com/sub/cookieValue 404 Not found'。ここで、cookieValueは以前に生成された同じパスのCookie値です。 – Origin

+0

サブフォルダを使用しているからです。今すぐ試してください(^、およびpimp.phpはrootで) – Croises

+0

どうやってやるの? 'pimp.php'は同じサブフォルダにあり、そうでなければなりません。 – Origin

関連する問題