2

この問題には2つの部分があります。

  1. htaccess rewriteを使用して「file.php」を「file」に変更したので、http://www.example.com/fileはhttp://www.example.com/file.phpと同じように機能します。

これを扱う私の.htaccessの一部は次のとおりです。

    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule (.+) /$1.php [L]
  1. 2番目の部分はディレクトリの問題です。

この問題を扱う私の.htaccessの一部は次のとおりです。

    RewriteRule ^register website/register

    RewriteRule ^register/rules website/rules

私が達成しようとしているのはこれです:

http://www.example.com/registerは、書き換えルールを使用してWebサイト/レジスタを表示し ますhttp://www.example.com/register/rulesは、書き換えルールを使用してWebサイト/ルールを表示します

問題は、URLボックスにexample.com/register/rulesが表示されているのに、ページにexample.com/registerのコンテンツが引き続き表示されることです。

ここで何が問題になっていますか?これをすべて引き起こしているのは、「。php」拡張子が最初の部分ですか?それとも私のhtaccessは完全に間違っていますか?

4

1 に答える 1

1

何も起きていません。URLボックスにはexample.com/register/rulesが表示されますが、ページには引き続きexample.com/registerのコンテンツが表示されます

これは、ルールを制限していないために発生しています。次のようになります。

RewriteRule ^register website/register

RewriteRule ^register/rules website/rules

/register/rulesURIが最初のルールの正規表現(「URIは「で始まる」を意味する)と一致するため^register 2番目のルールは適用されません。終了境界を追加する:register

RewriteRule ^register/?$ website/register [L]

RewriteRule ^register/rules/?$ website/rules [L]

またはそれらを交換します:

RewriteRule ^register/rules website/rules [L]

RewriteRule ^register website/register [L]

[L]旗が必要ですが。

于 2012-09-24T01:10:23.890 に答える