2011-09-10 95 views
2

我想創建一個動態頁面,其內容由傳遞給它的變量確定,但我希望URL是不錯。基本上我想在處理任何條的目錄/ foo中有一個索引文件。 example.com/foo/bar到example.com/foo?id=barhttp.conf重定向example.com/foo/bar到example.com/foo?id=bar

我已經嘗試了所有我能想到的在我的httpd.conf文件中。我的最新的嘗試是:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/foo/([a-z-]*) /foo/index.php?id=$1 [QSA,L] 

然而,當我嘗試加載example.com/foo/bar所加載的網頁是example.com

任何幫助,非常感謝!

編輯:當我訪問example.com/foo/bar時,它仍在加載example.com/index.php也許我的其他規則之一是干擾?

AllowOverride none 
Options +FollowSymLinks 
RewriteEngine on 

RewriteRule ^(.*)\.html$ http://www.example.com/$1.php [R=301] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/foo/([a-z-]*)(\/?)$ /foo/index.php?id=$1 [NC,QSA,L] 

RewriteCond %{HTTP_HOST} !^www\.example\.com [NC] 
RewriteRule ^/?(.*) http://www.example.com/$1 [L,R,NE] 

的.html分別.PHP,我想要實現的,和example.com到www.example.com。

回答

5

我在httpd.conf中使用此

<VirtualHost *:80> 
    DocumentRoot "/var/www/" 
    ServerName www.domain.com 
    ServerAlias www.domain.com 
    <Directory /var/www/> 
     #other directives 
    </Directory>  
    <Directory /var/www/foo/> 
     RewriteEngine on 
     RewriteCond %{REQUEST_FILENAME} !-f 
     RewriteCond %{REQUEST_FILENAME} !-d 
     RewriteRule ^([a-z]+)(\/?)$ index.php?id=$1 [NC,QSA,L] 
    </Directory> 
</VirtualHost> 
+0

你能告訴我你的httpd.conf?也許你有另一個規則覆蓋這個 –

+0

我在上面的編輯中添加了所有的規則。 –

+0

我編輯了我的答案。不要在「^」後添加「/」:^/foo /([a-z - ] *)(\ /?)$ –