2

www.example.com/test.php?archives=testing を www.example.com/archives/testing に取得しようとしています

Godaddyによると、デフォルトでmod_rewriteが有効になっています

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

rewriteengine on
rewritecond %{HTTP_HOST} ^example.com$
rewriterule ^example\/(.*)$ "http\:\/\/www\.example\.com\/$1" [R=301]
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^archives/(\w+)$ test.php?archives=$1 [L]

ただし、これは機能していません。www.example.com/archives/test にアクセスすると、404、提案が表示されます

4

4 に答える 4

2

これをコメントに残しましたが、見やすくするためにここに置くこともできます。私は時間をかけて他の人を助けた人のために答えを書きました. 元の質問は、短い URL 文字列を操作して、探しているような方法で機能させる方法を尋ねられましたが、その回答をここにコピーして貼り付けます。そこに行って読んでもらいましょう。

特定のニーズに合わせてルールを少し変更する必要があることは言うまでもありませんが、最終的には、目的の場所に到達するという目的に役立ちます.

PHP 動的 DB ページ書き換え URL

于 2012-08-03T21:39:34.090 に答える
1

このルールがいつ使用されるかを指定するには、いくつかの書き換え条件が必要です。それらがないと、同じ書き換えルールを無期限に実行し続け、エラーが発生します。試す:

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^archives/(\w+)$ test.php?archives=$1 [L]
于 2012-08-03T21:25:40.403 に答える
0

あなたがリライトから得ようとしていることを非常に明確にすることなく、私は提案します:

Options -MultiViews
ErrorDocument 404 default
RewriteBase /
于 2012-08-03T22:14:57.723 に答える
0

これはどう:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^archives/(.+)$ /test.php?archives=$1 [L]
</IfModule>
于 2012-08-03T22:03:21.393 に答える