2016-09-26 71 views
1

我想做一個重寫規則,將在同一文件夾中包含的兩個不同的文件工作。RewriteRule在兩個不同的文件相同的.htaccess

localhost/nameOfUser will be applied to index.php 
localhost/nameOfUser?score=12 or localhost/nameOfUser/12 will be applied to post.php 

我設法讓第一個工作,

RewriteEngine On 
RewriteRule ^(css|fonts)($|/) - [L] 
RewriteRule ^(php|avatars)($|/) - [L] 
RewriteRule ^(user|post)($|/) - [L] 
RewriteRule ^(.*)$ index.php?user=$1 [NC,QSA] 

如果我添加

RewriteRule ^(.*)$ post.php?user=$1 [NC,QSA] 

第二個開始上班,但第一個沒有。

甚至有可能在同一個.htaccess文件中對兩個不同的文件進行重寫嗎?

回答

1

給下面的規則一試:

RewriteEngine On 
RewriteRule ^(css|fonts|php|avatars|user|post)($|/) - [L] 
RewriteRule ^([^/]+)$ index.php?user=$1 [NC,QSA,L] 
RewriteRule ^([^/]+)/([^/]+)$ post.php?user=$1&score=$2 [NC,QSA,L] 

但是,如果你想nameOfUser?score=12工作,你需要修改它們到:

RewriteEngine On 
RewriteRule ^(css|fonts|php|avatars|user|post)($|/) - [L] 
RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^([^/]+)$ /index.php?user=$1 [NC,QSA,L] 
RewriteCond %{QUERY_STRING} ^score=(.+)$ 
RewriteRule ^([^/]+) /post.php?user=$1&score=%1 [NC,L] 
+0

在localhost /用戶/得分沒有按」 t顯示CSS。只是純文本。 – Mirakurun

+0

@Mirakurun更新您的HTML以包含''標籤。它應該出現在你的''標籤的開頭。 – hjpotter92

相關問題