#php #.htaccess #mod-rewrite
#php #.htaccess #мод-перезапись
Вопрос:
Я хочу переписать post.php?id = 1 amp; title =test в post / 1 /test
У меня есть этот код:
RewriteRule ^post/([^/] )/([^/] )/?$ post.php?id=$1amp;title=$2 [L,QSA]
Это работает, только если я переименую post.php ссылки на / post в моем php-файле. Я хочу переписать URL, чтобы мне не нужно было редактировать какие-либо ссылки.
Аналогично приведенному ниже:
RewriteCond %{THE_REQUEST} s/ (post).php[?/s] [NC]
RewriteRule ^ %1 [R=301,L]
RewriteRule ^(post)/?$ $1.php [L]
Ответ №1:
Вы можете использовать:
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} s/ post.php?id=([^amp;] )amp;title=([^samp;] ) [NC]
RewriteRule ^ /post/%1/%2? [R=301,L,NE]
# internal forward from pretty URL to actual one
RewriteRule ^post/([^/] )/([^/] )/?$ post.php?id=$1amp;title=$2 [L,QSA,NC]
Но неправильно говорить «мне не нужно редактировать какие-либо ссылки». Потому что это метод исправления старых ссылок, на которые уже ссылаются, а не для того, чтобы помешать вам изменять свой код на ваших страницах. Потому что HTML-код все еще содержит плохие ссылки…