Проблемы с переписыванием и перенаправлением с помощью .htaccess, чтобы сделать красивый URL - PullRequest
1 голос

Я пытаюсь создать красивые / оптимизированные для SEO URL-адреса для своего проекта, но не могу правильно настроить файл .htaccess.

Я научился переписывать и перенаправлять с %domain%/profile.php на %domain%/profileтак что существующие закладки будут работать и не будет дублирующих страниц для поисковых систем.Он прекрасно работает с этим кодом:

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule .* - [L]

RewriteCond %{REQUEST_URI}  ^/profile\.php$
RewriteRule .* /profile [R=301,L]
RewriteRule ^profile$ /profile.php [L]

Но я не могу понять, как сделать это с параметрами, такими как %domain%/profile.php?id=1 до %domain%/profile/1.Вот код, который я пытаюсь использовать:

RewriteCond %{QUERY_STRING}  ^id=([0-9]*)$ [NC]
RewriteRule ^profile\.php?id=([0-9]*)$ /profile/%1 [R=301,L]
RewriteRule ^profile/([0-9]*)$ /profile.php?id=%1 [L]

Но вместо %domain%/profile/1 сервер возвращает profile?id=1.

1 Ответ

2 голосов

Спасибо, Никос М.

Также, htaccess Tester может сильно помочь.

Так как мы уже проверены на? Id= [0-9] в% {QUERY_STRING} достаточно проверить файл profile.php только в шаблоне.Также я добавил вопросительный знак в замену ссылки, чтобы я получил /profile/1 вместо /profile/1?id=1.

RewriteRule ^profile\.php?id=([0-9]*)$ /profile/%1 [R=301,L]

до

RewriteRule ^profile\.php$ /profile/%1? [R=301,L]

Теперь он работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...