PHP: переписывание URL-адресов

Я хочу знать, как URL-адрес страницы без расширения .php

для моего здесь мой сайт:

http://mywebsite.com/ теперь с домашней страницы всякий раз, когда я нажимаю на какую-либо галерею, она перейдет на страницу gallery.php с querystring для galleryID для ex

http://mywebsite.com/gallery.php?id=29

Поэтому вместо этого gallery.php? Id = 29 Я хочу, чтобы URL-адрес был связан с заголовком страницы

http://mywebsite.com/9-WEDDING-GIFT-IDEAS

заранее спасибо

Solutions Collecting From Web of "PHP: переписывание URL-адресов"

Я бы рекомендовал использовать фреймворк PHP после того, как вы начнете идти по этому пути, что дает вашему приложению / сайту структуру и возможность настраивать маршруты (пути), которые вы запрашиваете.

Я поклонник Laravel , это позволяет вам использовать http://example.com/index.php/friendly-url/goes-here, если вы не настроили Apache (веб-сервер), чтобы удалить их.

Вы можете удалить index.php / part и просто http://example.com/friendly-url/goes-here , используя Apache mod_rewrite, который включает в себя Laravel. Проверьте документацию в разделе «Довольно URL»

Надеюсь, это поможет.

Есть два способа сделать это. Если у вас нет тонны URL-адресов, вы можете добавить их в свой файл .htaccess вручную.

RewriteEngine On # MANUAL RewriteRule ^9-WEDDING-GIFT-IDEAS/?$ gallery.php?id=29 [L] RewriteRule ^MOST-BEAUTIFUL-WEDDING-LOCATIONS/?$ gallery.php?id=30 [L] # ... 

В противном случае вы можете иметь дескриптор «gallery.php», чтобы посмотреть, какую статью отображать на основе заголовка. Поэтому, если он получает заголовок «9-WEDDING-GIFT-IDEAS», он может искать этот заголовок в базе данных и извлекать статью для этого заголовка. Здесь заголовок статьи будет передан как параметр «id» в «gallery.php».

 RewriteEngine On # PARSING HANDLED IN gallery.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ gallery.php?id=$1 [L] 

РЕДАКТИРОВАТЬ:

 <?php // gallery.php $article_title = $_GET['id']; // ... // DO A DB LOOKUP TO GET THE ARTICLE ID WHERE TITLE = '$article_title' // OR JUST GET THE ARTICLE BASED ON THE TITLE INSTEAD