1

皆さん、htaccessに問題があります。フレームワークとして codeigniter を使用しています。現在使用しているコードは次のとおりです。

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ([a-zA-Z0-9_-]+)\.example\.(.*+) [NC]
RewriteCond %{REQUEST_URI} /index([0-9]+) [NC]
RewriteRule .* /index.php/main_controller/method/%1 [QSA,L]

ここで、%1 を値として「main_controller」コントローラーの「method」という名前のメソッドに送信します。問題 : 入ってくる値 ([a-zA-Z0-9_-]+) を送信する代わりに、入ってくる値 ([0-9]+) を送信しています。 .... 入ってくる値 ([a-zA-Z0-9_-]+) を送信したい、たとえば、url が

somevalue.example.com/index33

33代わりに送信していますsomevalue

4

2 に答える 2

1
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.(.*+) [NC]
RewriteRule /index([0-9]+) /index.php/main_controller/method/%1/$1 [QSA,L]

だから、愚かな私。URI から変数を取得するには、REQUEST_URI に配置する必要はありません。Rewrite rule に配置するだけで、RewriteCond からの変数は %1 で取得され、([0-9]+) の変数は RewriteRule /index([0 -9]+) は $1 で取得されました。それが他の人にも役立つことを願っています

于 2012-05-31T09:23:19.180 に答える
1
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{REQUEST_URI} /index([0-9]+) [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.(.*+) [NC]
RewriteRule .* /index.php/main_controller/method/%1 [QSA,L]
于 2012-05-31T09:07:25.437 に答える