可以使用htaccess將下劃線「_」替換爲「/」嗎? 例如,我想這 http://example.com/empresa_historia-da-empresa.php 留好 http://example.com/empresa/historia-da-empresa如何使用htaccess將下劃線「_」替換爲「/」?
這可能嗎?
可以使用htaccess將下劃線「_」替換爲「/」嗎? 例如,我想這 http://example.com/empresa_historia-da-empresa.php 留好 http://example.com/empresa/historia-da-empresa如何使用htaccess將下劃線「_」替換爲「/」?
這可能嗎?
您可以使用此:
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteRule !\.(html|php)$ - [S=4]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1/$2/$3/$4/$5 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_(.*)$ $1/$2/$3/$4 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_(.*)$ $1/$2/$3 [E=uscor:Yes]
RewriteRule ^([^_]*)_(.*)$ $1/$2 [E=uscor:Yes]
RewriteCond %{ENV:uscor} ^Yes$
RewriteRule (.*) http://example.com/$1 [R=301,L]
發現這裏(和改了一下):http://www.askapache.com/htaccess/modrewrite-tips-tricks.html#Rewrite_underscores_hyphens_SEO_URL 它將爲1至4 underscroes工作
實際上最多可以使用10個下劃線。由於第一條規則取代了它發現的前四條。但是接下來執行第二個替換下三個下劃線等。即使有更多的10 apache將繼續刪除10個下劃線和重定向,直到沒有更多的下劃線。 – Gerben
你說得對,最多可以使用10個下劃線。但是如果我使用11,URL「a_b_c_d_e_f_g_h_i_j_k_l.php」被重定向到「a/b/c/d/e/f/o/h/i/j/k/l.php/b/c/d/e /f/o/h/i/j/k/l.php/b/c/d/e/f/o/h/i/j/k/l.php/b/c/d/e/f/o ...「的URL沒有結束,所以瀏覽器顯示414錯誤。 – Christopher
你可能就在那裏。可能在所有重寫過程中添加「L」標誌將解決此問題。 – Gerben
如果你有機會獲得httpd.conf中更容易使用一個RewriteMap來做到這一點。 – Ansari