2014-09-26 124 views
0

我有一個網站有幾個獨立的網頁(如signup.php)和一個主要的PHP文件,使用GET參數顯示其餘的頁面。使用mod_rewrite重寫斜槓

我希望HTTP請求重寫到服務器,這樣,像一個請求:

http://example.com/website/settings/將顯示在頁面

​​,而不會影響所有其他網頁。

我對mod_rewrite很陌生,所有的嘗試都導致404或500響應代碼。編寫RewriteCond和RewriteRule的正確方法是什麼?

回答

1

在htaccess文件添加這些規則的文檔根目錄(其中website文件夾中):

RewriteEngine On 

RewriteCond %{THE_REQUEST} \ /+website/(?:index\.php|)\?page=([^&]+)/(&|\ |$) 
RewriteRule^/website/%1/ [L,R] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^website/(.+)/$ /website/index.php?page=$1 [L,QSA] 

或者你可以改爲把這些規則在website文件夾,如果更有意義:

RewriteEngine On 
RewriteBase /website/ 

RewriteCond %{THE_REQUEST} \ /+website/(?:index\.php|)\?page=([^&]+)/(&|\ |$) 
RewriteRule^%1/ [L,R] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)/$ index.php?page=$1 [L,QSA] 
+0

似乎工作很好,非常感謝! – mittelmania 2014-09-27 06:44:29