2016-04-04 56 views
1

我有兩個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

.*匹配任何東西,只有第1章的作品明顯。

您可以使用這條規則:

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}(+)/ $' '重寫規則^%1 [R = 301,L]' 其中我從這裏得到:'stackoverflow.com/questions/ 21417263/htaccess-add-remove-trailing-slash-from-url' 它解決了這個問題。現在,在我應用您發佈的HTML之前,我評論了這些規則並提出了'/'並刷新了頁面,並且我的css完好無損。我不知道,我覺得它跟我一起玩。 – Bishiya