3

htaccess を使用してhttp://test.pearlsquirrel.com/explore_all?u=hiphophttp://test.pearlsquirrel.com/explore_all/hiphopにリダイレクトしようとしています。ただし、ここでリダイレクトし続けます: http://test.pearlsquirrel.com/explore_all/?u=site_error.php。私は答えを得るためにStackoverflow全体を見てきましたが、それを見つけることができないようです. この問題を解決するための助けをいただければ幸いです。ありがとう!

ここに私の .htaccess ファイルがあります

Options +FollowSymlinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.pearlsquirrel.com$ [NC]
RewriteRule ^(.*)$ http://pearlsquirrel.com/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/]+)/$ $1.php

RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+) explore_all?u=$1 [L]
4

1 に答える 1

2

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

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING}  [^=]+=([^=]+)
RewriteRule .* /%1? [L]

これをマップします:

http://test.pearlsquirrel.com/explore_all?u=hiphop

これに:

http://test.pearlsquirrel.com/explore_all/hiphop

.htaccess ファイル内の対応するコードをこのコードに置き換えます。

.htaccess ファイルのルールを確認していません。

オプション

さて、逆の場合は、そうであると思います。アイデアは、この受信 URL をマップすることです。

http://test.pearlsquirrel.com/explore_all/hiphop

このリソースへ:

http://test.pearlsquirrel.com/explore_all?u=hiphop

上記のルール セットを次のルール セットに置き換えます。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  .*/([^/]+)/?
RewriteRule .* http://test.pearlsquirrel.com/explore_all?u=%1 [L] 
于 2013-01-03T21:01:18.097 に答える