5

すべてを書き直そうとしwww.site.com/hello to www.site.com/index.php?p=hello ていますが、次のコードで動作します(.htaccess):

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)/?$ /index.php?p=$1

しかし、私は古いリンクを機能させ続けたいので、そのままにしwww.site.com/?p=helloますwww.site.com/?p=hello

次のコードを試しましたが、うまくいきません

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\?p=)
RewriteRule ^([^/]*)/?$ /index.php?p=$1
4

1 に答える 1

5

私は答えを見つけました。

GETでパラメーターを取得しようとしたのが間違いでしたREQUEST_URI。正しい使用法は次のようにする必要がありますQUERY STRING

RewriteCond %{QUERY_STRING} !(p=.*)$ 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)/?$ /index.php?p=$1
于 2013-08-16T11:20:50.863 に答える