2016-02-13 2 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

ли URL-адрес назначения, который вы пытаетесь перенаправить на существование? – starkeen

+0

Нет, потому что я хотел бы преобразовать только строку запроса в URL-адрес пути ... Это возможно? – Laurent

ответ

1

Вы можете использовать следующий код в админ/.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: //www.mywebsite.com/en/admin/index? Page = archived' в моем браузере url – Laurent

+0

@Laurent Попробуйте очистить кэш вашего браузера – starkeen

+1

Отлично! Большое спасибо за поддержку Starkeen! – Laurent

Смежные вопросы