1

よし、私の .htaccess はここにあるhttp://example.com/forums/

RewriteEngine On 
RewriteRule ^threads/([^/]+)/([^/]+)$ forums-threads.php?code=$1&pn=$2 [QSA]
RewriteRule ^threads/([^/]+)$ forums-threads.php?code=$1 [QSA]
RewriteRule ^new-thread/([^/]+)$ forums-new-thread.php?code=$1 [QSA]
RewriteRule ^new-post/([^/]+)$ forums-new-post.php?code=$1 [QSA]
RewriteRule ^([^/]+)/([^/]+)$ index.php?code=$1&pn=$2 [QSA]
RewriteRule ^([^/]+)$ index.php?code=$1 [QSA]

問題は、この例のように新しいスレッド URL に移動すると、代わりにインデックス ページに移動し、$_GET出力される変数が

Array ( [code] => eUjJP-Announcements [pn] => eUjJP-Announcements )

この問題をどのように解決できるか、.htaccess上記のコードに他に修正が必要な問題があるかどうか疑問に思っています。

4

1 に答える 1

0

それをブロックする他の条件がないため、以下の後続のルールがまだ実行されているために発生しています。

コードを次のように置き換えます。

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /forums/

RewriteRule \.php$ - [L]

RewriteRule ^threads/([^/]+)/([^/]+)$ forums-threads.php?code=$1&pn=$2 [QSA,L]
RewriteRule ^threads/([^/]+)$ forums-threads.php?code=$1 [QSA,L]
RewriteRule ^new-thread/([^/]+)$ forums-new-thread.php?code=$1 [QSA,L]
RewriteRule ^new-post/([^/]+)$ forums-new-post.php?code=$1 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)$ index.php?code=$1&pn=$2 [QSA,L]
RewriteRule ^([^/]+)$ index.php?code=$1 [QSA,L]
于 2013-07-11T19:37:54.240 に答える