0

さて、私はSOや他の場所で見つけた多くのことを試しましたが、それを機能させることができず、常に404エラーコードを受け取ります。

このURLを入力したい:

memorizeit.com/pics/220.0.8251.20120905002352.7982368227/Jameson+tested+the+MemorizeIt%21+Android+app%3A+With+Facebook+%26+Twitter.+Getting+grass+stains.

目に見えない形で次のように変換します。

memorizeit.com/pics/index.php?pic=220.0.8251.20120905002352.7982368227&title=Jameson+tested+the+MemorizeIt%21+Android+app%3A+With+Facebook+%26+Twitter

index.phpページは以下を探しています:

$pic = ($_GET["pic"]);
$title = ($_GET["title"]);

/ picsディレクトリの.htaccessファイルには、次のものがあります。

RewriteEngine on
Header set Cache-Control "max-age=2592000"
RewriteRule ^pics/([^\/]*)/([^\/]*)/([^\/]*)$ /pics/index.php?pic=$1&title=$2&extra=$3 [L,QSA]
RewriteRule ^pics/(.+)/(.+)$ /pics/index.php?pic=$1&title=$2 [L,QSA]
RewriteRule ^pics/([^\/]*)$ /pics/index.php?pic=$1 [L,QSA]

QSAなしで試しましたが、。+(何でも)と[^ /] *(/以外は何でも)のどちらかで試しました。両方を残したので、どのように配置したかがわかります( !)。$ 1に数字とピリオドのみを含めることを許可する予定ですが、最初に広く公開して機能させたいと思います。

なぜ機能しないのかわかりません。私のベースURL.htaccessファイルには次のものがあります。

RewriteCond %{SERVER_PORT} ^80$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

また、常にhttpsにリダイレクトされるため、.htaccessファイルが読み取られていることがわかります。他に何をしようかわからない。どんな考えでも大歓迎です。ありがとう!

4

1 に答える 1

0

pics /は実際のディレクトリであるため、リライトは、先に進んでリライトするよりも、そこに到達するのに苦労していました。そこで、一致するステートメントでpics/をp/に変更し、ルールをベースの.htaccessファイルに移動すると、期待どおりに機能します。

うわー、それは長い苦痛な時間を要しました...それが他の誰かの時間を節約することを願っています。

于 2012-09-06T02:30:19.690 に答える