2015-03-24 4 views
1

В настоящее время мой локальный URL похож localhost/apnaujjain/page.php?page_id=1&action=contactsНужна помощь в написании правила HTAccess

Теперь я хочу написать правило так, что, когда я иду выше URL это просто переписать URL как localhost/apnaujjain/contacts.html

Смотреть он должен преобразовать .php в .html без влияния на содержимое страницы.

До сих пор я пытался

Options +FollowSymLinks -MultiViews 
RewriteEngine on 
#RewriteBase/

RewriteCond %{THE_REQUEST} (.*)\.php 
RewriteRule ^(.*)\.php $1.html [R=301,L] 

RewriteCond %{THE_REQUEST} (.*)\.php?page_id=1$&action=2$ 
RewriteRule ^(.*)\.php $2.html [R=301,L] 

RewriteCond %{THE_REQUEST} (.*)\.html 
RewriteRule ^(.*)\.html $1.php [L] 

Но это не работает.

ответ

1

Вы можете использовать этот код в /apnaujjain/.htaccess:

Options +FollowSymLinks -MultiViews 
RewriteEngine on 
RewriteBase /apnaujjain/ 

# redirect localhost/apnaujjain/page.php?page_id=1&action=contacts to 
# localhost/apnaujjain/1/contacts.html 
RewriteCond %{THE_REQUEST} \s/+.+?\.php\?page_id=([^\s&]+)&action=([^\s&]+) [NC] 
RewriteRule . %1/%2.html? [R=301,L] 

RewriteRule ^([^/]+)/([^.]+)\.html$ page.php?page_id=$1&action=$2 [NC,L,QSA] 
+0

Спасибо за быстрый ответ, но page_id также изменить и он не работает на локальном хосте. Позвольте мне попробовать сервер, но спасибо и как добавить динамический page_id как действие – user2935236

+0

все еще не работает, когда я перехожу к localhost/apnaujjain/index.php, тогда он перенаправляет меня на localhost/index.html, и когда я перехожу на внутренние страницы, это не изменение URL. Я действительно очень плохой в регулярном выражении, пожалуйста, помогите. – user2935236

+0

Согласно вашему предложению, я изменил свой URL-адрес, и теперь его http: //localhost/apnaujjain/page.php? Action = important_contacts & page_id = 2, я просто изменил положение параметров, так как мне нужен только параметр действия в url rewrite not page id, поэтому, пожалуйста, предложите мне точное правило. – user2935236

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