2013-08-26 45 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