0

こんにちは、これは私の htaccess です:

RewriteRule ^[a-zA-Z]*$ /index.php?a=profile&u=$1 [L]

RewriteRule ^([a-zA-Z0-9_-]+)/home$ /index.php?u=$1 [L]


RewriteRule ^([a-zA-Z0-9_-]+)/blog$ /blog.php?u=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/contact$ /contact.php?u=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/portfolio$ /portfolio.php?u=$1 [L]

RewriteRule ^([a-zA-Z0-9_-]+)/page_([a-zA-Z0-9_-]+)$  /page.php?id=$2&u=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/post_([a-zA-Z0-9_-]+)$ /post.php?id=$2&u=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/blog_([a-zA-Z0-9_-]+)$ /blog.php?id=$2&u=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/project_([a-zA-Z0-9_-]+)$ /project.php?id=$2&u=$1 [L]

最初の行以外のすべての行が機能します。条件を使用する必要があると思いますか? これは、誰かが site.com/john にアクセスした場合に私がやろうとしていることです。たとえば/index.php?a=profile&u=$1、この場合は username=john のプロファイルに送信されます。しかし、何が起こるかというと、index.php に送り返されます。

4

1 に答える 1

1

私はあなたが削除する必要があると思います[L]

RewriteRule ^([a-zA-Z]*)$ /index.php?a=profile&u=$1

[L] フラグにより​​、mod_rewrite はルール セットの処理を停止します。ほとんどの場合、これは、ルールが一致した場合、それ以上のルールは処理されないことを意味します。これは、Perl の最後のコマンド、または C の break コマンドに対応します。このフラグを使用して、それ以上のルールを考慮せずに現在のルールをすぐに適用する必要があることを示します。

于 2013-07-28T13:43:07.270 に答える