2013-08-26 142 views
3

我需要將我的動態網址參數重定向到子文件夾網址。 源URL的長度/級別可能有所不同。Htaccess 301動態網址重定向

一個例子是:

來源:

http://www.domain.com/dir/?lang=en 

期望:

http://www.domain.com/dir/en 

和另一個將是:

來源:

http://www.domain.com/dir/subdir/?lang=en 

期望:

http://www.domain.com/dir/subdir/en 

我使用WordPress的,所以在我的htaccess的,所討論的重定向,需要一起工作的一些現有的代碼。我現有htaccess的是這樣的:?

RewriteEngine敘述在RewriteBase /重寫規則^ $的index.php - [L]

重寫規則^([_ 0-9A-ZA-Z - ] + /)WP-管理員$ $ 1WP管理員/ [R = 301,L]

的RewriteCond%{REQUEST_FILENAME} -f [OR]的RewriteCond %{REQUEST_FILENAME} -d重寫規則^ - [L]重寫規則 ^([_ 0-9A -zA-Z - ] + /)?(wp-(content | admin | includes)。*)$ 2 [L] RewriteRule ^([_ 0-9a-zA-Z - ] + /)?(。*。php )$ $ 2 [L] RewriteRule。 index.php [L]

我試圖搜索整個網絡,但沒有解決方案/答案似乎適合這種特殊情況。 任何專家誰可以幫忙?

在此先感謝!

+1

這方面的問題解決了混合代碼@anubhava建議?如果不是,我相信你應該快速檢查htaccess重寫命令[這裏](https://httpd.apache.org/docs/current/howto/htaccess.html#rewrite)或[here](http:// www .askapache.com/htaccess/htaccess.html),如果你自己獲得解決方案,你可以發佈你自己的答案,但如果沒有,請讓我們知道這裏的評論。 – davidtaubmann

回答

1

啓用mod_rewrite的,並通過httpd.conf的.htaccess,然後把這個代碼在你.htaccessDOCUMENT_ROOT目錄:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{QUERY_STRING} !^lang=.+ [NC] 
RewriteRule ^(.+?)/([^/]+)/?$ $1/?lang=$2 [L,QSA] 
+0

感謝您的回覆。但是,我無法想象它。我在.htaccess文件(來自wordpress)中有以下代碼。 RewriteEngine敘述在 RewriteBase/ 重寫規則^索引\ .PHP $ - [L] 重寫規則^([_ 0-9A-ZA-Z - ] + /)?可溼性粉劑管理員$ $ 1WP管理員/ [R = 301,L] 的RewriteCond%{REQUEST_FILENAME} -f [OR] 的RewriteCond%{REQUEST_FILENAME} -D- 重寫規則^ - [L] 重寫規則^([_ 0-9A-ZA-Z - ] + /)?(wp-(content | admin | includes)。*)$ 2 [L] RewriteRule ^([_ 0-9a-zA-Z - ] + /)?(。* \。php)$ $ 2 [L] RewriteRule。 index.php [L] 你的建議是否與此一起工作?如果是這樣,怎麼樣?非常感謝你。 – user2168049

+0

任何人都可以回答? – user2168049

+1

您需要先解釋您的問題。喜歡我的建議答案工作與否?如果沒有,那什麼都行不通。最後,你不應該在評論中提供代碼評論。編輯你的問題,並在那裏複製/粘貼你的.htaccess。 – anubhava