2016-04-04 8 views
1

私は2つのRewriteRulesが一緒に動作しない場合があります。それぞれが個別に動作しますが、最上部の作業だけを一緒に配置すると動作します。先頭のRewriteRuleのみが動作します

私のディレクトリ構造:http://localhost/project/sitepages

ページ:

http://localhost/project/sitepages/page1.php?name=pagename

http://localhost/project/sitepages/page2.php?name=pagename&id=pageid&name2=pagename2

どのようにページがアクセスできるようにしたい:

http://localhost/project/pagename

私が使用

http://localhost/project/pagename/pageid/pagename2

RewriteRule

RewriteRule ^(.*)$ sitepages/page1.php?name=$1 [QSA]

RewriteRule ^(.*)$ sitepages/page2.php?name=$1&id=$2&name2=$3 [QSA]

答えて

0

.*が、それには何も一致した明白なだけ第一のルール作品です。

あなたはこれらの2つのルールを使用することができます:それは働いた

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([\w-]+)/?$ sitepages/page1.php?name=$1 [QSA,L] 

RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ sitepages/page2.php?name=$1&id=$2&name2=$3 [QSA,L] 
+0

感謝を。しかし、URLの最後に '/'があると、私のCSSスタイルが壊れてしまいました。それをどうやって修正するのですか? – Bishiya

+0

これは、css/js/imagesでの相対パスの使用によるものです。修正するには、ページのHTMLの ''セクションのすぐ下にこれを追加してください: '' – anubhava

+0

私はここから得 'のRewriteCond%{REQUEST_URI}/$' 'のRewriteRule ^%1 [R = 301、L]' このするRewriteRuleを適用する(+): 'stackoverflow.com/questions/ 21417263/htaccess-add-remove-trailing-slur-from-url' 問題を修正しました。そして、あなたが投稿したHTMLを適用する前に、私はルールをコメントアウトして '/'を入れ、ページをリフレッシュしてCSSを元に戻しました。私は知らない、私はそれが私と一緒にpeekabooを演奏していると感じる。 – Bishiya

関連する問題