0
我正在改造我的網站,將重新命名很多目錄,並且需要一個簡單的方法來爲所有這些頁面編寫我的.htaccess重定向。我希望有一個不包含很長文件列表的解決方案。我的.htaccess文件很大,因爲它是。是否可以在.htaccess文件中使用通配符進行批量移動?
我正在改造我的網站,將重新命名很多目錄,並且需要一個簡單的方法來爲所有這些頁面編寫我的.htaccess重定向。我希望有一個不包含很長文件列表的解決方案。我的.htaccess文件很大,因爲它是。是否可以在.htaccess文件中使用通配符進行批量移動?
您可以使用mod_alias或mod_rewrite進行重定向。 mod_rewrite可以處理正則表達式,而mod_alias可以處理正則表達式和路徑前綴。
下面是當你想重寫一些例子/foo/…
到/bar/…
:
# mod_alias
# path prefix
Redirect 301 /foo /bar
# regular expression
RedirectMatch 301 ^/foo/(.*) /bar/$1
# mod_rewrite
RewriteEngine on
RewriteRule ^foo/(.*) /bar/$1 [L,R=301]
注意mod_alias中和mod_rewrite的爲他們的正則表達式模式不同的要求。 mod_alias始終需要完整的URL路徑。但是使用mod_rewrite取決於您是在.htaccess文件還是在服務器配置/虛擬主機部分中使用它。在.htaccess文件中,您需要編寫沒有每個目錄路徑前綴的模式(在文檔根目錄爲/
的情況下,在/quux/
的情況下爲/quux/
)。
我無法使格式化工作,對不起。 我在使用上面的時候做錯了什麼。我寫... 重定向301 /幻想/ v /幻想/意見 RedirectMatch 301^/幻想/ v /(.*)/幻想/意見/ $ 1 但這導致我的整個網站的內部服務器錯誤。然後我嘗試了這個... 重定向301 http://www.xecu.net/fantasy/v http://www.xecu.net/fantasy/opinions RedirectMatch 301 http://www.xecu.net/幻想/ v(。*)http://www.xecu.net/fantasy/opinions$1 這並沒有導致錯誤,但沒有奏效。我做錯了什麼? – 2009-10-09 19:33:33