0

htaccessを使用して2つの変数を渡します。件名とブランド

RewriteRule ^([A-Za-z0-9_-]+)/?$ ?subject=$1 [NC,L]
RewriteRule ^([A-Za-z0-9_-]+)/?$ ?brand=$1 [NC,L]

関数ファイルでは、ページ検出を使用してそれぞれのモジュールを含めています。

if (!empty($_REQUEST['subject']))
{
    include_once("templates/pages.php");

}

else if (!empty($_REQUEST['brand']))
{
    include_once("templates/brands_content.php");

}

問題:変数を検出できません....常にロードされている「templates/pages.php」この問題を解決するために誰かが私を案内してくれますか。

ありがとう

4

1 に答える 1

0

2 番目のルールは、RewriteRule ^([A-Za-z0-9_-]+)/?$ ?brand=$1 [NC,L]要求した URL が最初の URL (件名) と一致するため、決して一致しません。件名またはブランドの URL の表示方法に違いはないようです。

http://yourdomain.com/12345

「12345」はブランドですか、それとも件名ですか? サブジェクトとブランドを相互に排他的に一致させる正規表現を作成する必要があります (または、そうでない場合は、最初のルールであるサブジェクトが常に最初に一致します)。または、それを URI に追加することで、ブランドまたはサブジェクトが何であるかを明示的に示すことができます。

http://yourdomain.com/subject/12345
http://yourdomain.com/brand/12345

したがって、ルールは次のようになります。

RewriteRule ^subject/([A-Za-z0-9_-]+)/?$ ?subject=$1 [NC,L]
RewriteRule ^brand/([A-Za-z0-9_-]+)/?$ ?brand=$1 [NC,L]
于 2012-07-16T17:01:16.227 に答える