2016-02-13 76 views
1

我试图改变http://www.mywebsite.com/en/admin/index?page=archived转换查询字符串的URL路径

http://www.mywebsite.com/en/admin/page/archived/ 

我已经尝试了一堆东西,包括:

RewriteCond %{QUERY_STRING} ^page=(.+)$  
RewriteRule ^(.*)$ http://%{HTTP_HOST}/en/admin/%1? [R=301,L] 

但我一直一404错误。

我的.htaccess是为admin directory

的.htaccess:

RewriteEngine On 

# Unless directory, remove trailing slash 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/$ http://%{HTTP_HOST}/en/admin/$1 [R=301,L] 

# Redirect external .php requests to extensionless url 
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(.+)\.php$ http://%{HTTP_HOST}/en/admin/$1 [R=301,L] 

# Resolve .php file for extensionless php urls 
RewriteRule ^([^/.]+)$ $1.php [L] 

RewriteCond %{THE_REQUEST} /index\?page=(.+?) [NC] 
RewriteRule ^index$ /en/admin/page/%1? [NC,L,R] 
RewriteRule ^page/([^/.]+)/?$ /en/admin/index?page=$1 [NC,L] 
+0

请问您要的目标网址重定向存在? – starkeen

+0

不,因为我想只将查询字符串转换为路径url ...这可能吗? – Laurent

回答

1

您可以使用下面的代码的admin /的.htaccess:

RewriteEngine On 
RewriteCond %{THE_REQUEST} /index\?page=([^\s]+) [NC] 
RewriteRule^/en/admin/page/%1? [NC,L,R] 
RewriteRule ^page/([^/.]+)/?$ /en/admin/index?page=$1 [NC,L] 
+0

感谢您的支持,但我仍然在我的网址浏览器中登录http://my.mywebsite.com/en/admin/index?page= archived' – Laurent

+0

@Laurent尝试清除浏览器的缓存 – starkeen

+1

完美无缺!非常感谢您对Starkeen的支持! – Laurent