Я работаю на сайте, который находится в php ….. я хочу переписать URL-адрес
eg www.3idiots.co.in/stories.php?id=17
если я хочу переписать его как
www.3idiots.co.in/stories/17.html
может ли кто-нибудь сказать мне код для этого, чтобы записать файл .htaccess.?
Я предполагаю, что вы используете Apache с mod_rewrite. Что-то вроде
RewriteEngine On RewriteRule ^/stories/([0-9]+)\.html /stories.php?id=$1
должен сделать трюк. Конечно, вам нужно убедиться, что RewriteRule разрешен в этом каталоге. См. Эту страницу wiki для получения дополнительной информации.
mod_rewrite может только переписывать / перенаправлять запрошенные URI, а не те, которые находятся в ваших HTML-документах. Поэтому сначала убедитесь, что ваше PHP-приложение печатает правильные URI, так что /stories/17.html
вместо /stories.php?id=17
.
После этого вы можете использовать правило, предложенное Хосе Базилио:
RewriteRule ^stories/([0-9]+)\.html$ stories.php?id=$1
Хотя перенаправление запросов /stories.php?id=17
извне на /stories/17.html
а затем внутренне обратно на /stories.php?id=17
возможно, это не очень хорошая практика, так как это приведет к /stories.php?id=17
количества запросов. Но вот правило для этого:
RewriteCond %{THE_REQUEST} ^GET\ /stories\.php[?\s] RewriteCond %{QUERY_STRING} ^(([^&]*&)*)id=([0-9]+)&*([^&].*)?$ RewriteRule ^stories\.php$ /stories/%3.html?%1%4 [L,R=301]