2016-07-24 83 views
0

我是新來的URL重寫。如何使用.htaccess僅使用GET參數重寫一個頁面的規則?

我迄今所做的:

使用一些在線資源,我能成功通過以下規則來我的網址loclahost/mysite/attach.php?q=1改寫爲localhost/mysite/attach/1

Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteBase /mysite/ 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^attach/([^/]+)$ attach.php?q=$1 [NC,L] 

問題: 我問題是,使用這個規則我所有的URL都被覆蓋。如果我點擊導航菜單上的任何鏈接,它會在頁面前追加attach/。此外,CSS和圖片鏈接也被覆蓋,如localhost/mysite/attach/style/css/style.css,而它應該是localhost/mysite/style/css/style.css,因此,瀏覽器也不會設置頁面樣式。

回答

0

檢查你的最後3行到這條規則,你會一切設置。

RewriteCond %{QUERY_STRING} (^|&)q=1($|&) 
RewriteRule ^mysite/attach\.php$ /mysite/attach/1?&%{QUERY_STRING} 
+0

沒有運氣。它變得更糟。它給了我404錯誤。找不到對象。 – TeamIncredibles