1

我想重寫一些動態頁面的網址,其中數據從像「這是一個鏈接」slu taken的數據庫中獲取。htaccess動態URL重寫與.html擴展基於URL選擇

 Options +FollowSymlinks 
     RewriteEngine On 

     RewriteBase /testweb/ 

     RewriteCond %{REQUEST_FILENAME} !-d [NC] 
     RewriteCond %{REQUEST_FILENAME} !-f [NC] 
     RewriteRule ^(.*)$ faq_pages.php?page=$1 [QSA,L] 

它正常工作與http://www.test.com/testweb/this-is-a-link

但我需要改變任何基於鏈路上的重寫規則如下點擊。

http://www.test.com/testweb/faq/this-is-a-link, 'testweb /消息/這個-IS-另一個鏈路', '/ testweb /證明書/測試鏈路'

的 「faq_pages.php」 在上面的重寫規則應改爲「news_pages.php」。我如何動態獲取它,以便我可以使用相同htaccess的每個頁面,或者如何在htaccess中檢查並重寫值到不同的頁面。

也請指教我如何糾正下面的代碼。

 Options +FollowSymlinks 
     RewriteEngine on 
     RewriteRule ^(.*)\.html$ faq_pages.php?page=$1 

我需要顯示HTML的URL像「/testweb/this-is-a-link.html」或「/testweb/faq/this-is-a-link.html」

地址欄

編輯:在Jon Lin的幫助下,我更新了我的代碼,如下所示。

 Options +FollowSymlinks 
     RewriteEngine On 

     RewriteBase /testweb/ 

     RewriteCond %{REQUEST_FILENAME} !-d [NC] 
     RewriteCond %{REQUEST_FILENAME} !-f [NC] 
     RewriteRule ^faq/(.*?)/?$ faq_pages.php?page=$1 [QSA] 

現在都低於條件下工作: /testweb/faq/another-faq-test.html,
/testweb/faq/another-faq-test.html/

正如我不沒有名稱爲'faq'的任何子文件夾,根文件夾中的模板文件(images/css/js等)未加載。 我該如何解決它?

感謝你

回答

0

你在找這樣的嗎?

Options +FollowSymlinks 
    RewriteEngine On 

    RewriteBase /testweb/ 

    RewriteCond %{REQUEST_FILENAME} !-d [NC] 
    RewriteCond %{REQUEST_FILENAME} !-f [NC] 
    RewriteRule ^faq/(.*)$ faq_pages.php?page=$1 [QSA,L] 

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

嗨,謝謝你的回答。我已經使用RewriteRule^faq /(.*)/$ faq_pages.php?id = $ 1 [QSA]和RewriteRule^faq /(.*)$ faq_pages.php?id = $ 1 [QSA]來重寫testweb/faq/another -faq-test.html /和testweb/faq/another-faq-test.html。請告訴我,如果這是正確的做法。另外請幫我忽略/重寫'faq'文件夾,因爲目前的CSS或圖像沒有加載,因爲URL中有'faq /'。非常感謝 – user2669827

+0

@ user2669827而不是使用2個規則,只需在'/'之後加一個'?'即可。如果你在'/ faq /'中請求一個靜態文件,那麼2個重寫條件會阻止應用該規則 –

+0

嗨,再次感謝。 RewriteRule^faq /(.*)/?$ faq_pages.php?id = $ 1 [QSA]不適用於/testweb/faq/another-faq-test.html/。我只使用'faq /'和'news /'來檢查url並重寫到不同的頁面。我沒有任何有這些名字的文件夾。如何忽略它或指定它們不是目錄..現在URL查找文件夾'faq' – user2669827