SEO дружественный URL-адрес, используя php

Я пытаюсь сделать SEO дружественный сайт, используя php

В папке jcheck у меня есть файл index.php, который принимает один параметр «id» в качестве входного.

mydomain.com/jcheck/index.php?id=1 works 

Как я могу сделать это следующим образом

 mydomain.com/jcheck/1 

Я попытался сделать файл .htaccess и поставить

 RewriteEngine on RewriteCond %{REQUEST_URI} 1/ RewriteRule 1/ http://mydomain.com/jcheck/index.php?id=1 

Как я могу заставить его работать?

Solutions Collecting From Web of "SEO дружественный URL-адрес, используя php"

Вы можете сделать это двумя способами:

Маршрут .htaccess с mod_rewrite

Добавьте в корневую папку файл .htaccess и добавьте что-то вроде этого:

 RewriteEngine on RewriteRule ^/Some-text-goes-here/([0-9]+)$ /picture.php?id=$1 

Это скажет Apache, чтобы включить mod_rewrite для этой папки, и если ему будет задан URL-адрес, соответствующий регулярному выражению, он перезаписывает его внутри того, что вы хотите, без того, чтобы конечный пользователь его видел. Легкая, но негибкая, поэтому, если вам нужно больше энергии:

Маршрут PHP

Вместо этого поставьте вместо этого следующее .htaccess:

 FallbackResource index.php 

Это скажет, что он запускает ваш index.php для всех файлов, которые он обычно не может найти на вашем сайте. Там вы можете, например:

 $path = ltrim($_SERVER['REQUEST_URI'], '/'); // Trim leading slash(es) $elements = explode('/', $path); // Split path on slashes if(count($elements) == 0) // No path elements means home ShowHomepage(); else switch(array_shift($elements)) // Pop off first item and switch { case 'Some-text-goes-here': ShowPicture($elements); // passes rest of parameters to internal function break; case 'more': ... default: header('HTTP/1.1 404 Not Found'); Show404Error(); } 

Вот как это делают большие сайты и CMS-системы, поскольку это позволяет гораздо большую гибкость в анализе URL-адресов, конфигурационных и зависимых от базы данных URL-адресов и т. Д. Для спорадического использования жестко закодированные правила перезаписи в .htaccess будут все равно.

***** Скопируйте этот контент из URL-адреса, переписывая с помощью PHP **

В файле htaccess в вашем каталоге jcheck используйте следующие правила:

 RewriteEngine On RewriteBase /jcheck/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([0-9]+)/?$ index.php?id=$1 [L,QSA] 

Попробуй это:

 RewriteRule ^jcheck/([0-9]+)$ jcheck/index.php?id=$1 
 RewriteEngine on RewriteRule ^/jcheck/([0-9]+)$ /jcheck/index.php?id=1 

и см. также здесь, это будет полезно для вас

Поместите файл .htaccess внутри папки jcheck и напишите:

 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-D RewriteRule ^1/?$ index.php?id=1