SEO friendly url using php [duplicate]

2020-01-29 01:00发布

I am trying to make SEO friendly website using php...

In folder jcheck i have a index.php file which take one parameter "id" as input.

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

How can i make it as follow

mydomain.com/jcheck/1

I have tried making .htaccess file and putting

RewriteEngine on

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

How can i make it work?

5条回答
Explosion°爆炸
2楼-- · 2020-01-29 01:39

You can essentially do this 2 ways:

The .htaccess route with mod_rewrite

Add a file called .htaccess in your root folder, and add something like this:

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

This will tell Apache to enable mod_rewrite for this folder, and if it gets asked a URL matching the regular expression it rewrites it internally to what you want, without the end user seeing it. Easy, but inflexible, so if you need more power:

The PHP route

Put the following in your .htaccess instead:

FallbackResource index.php

This will tell it to run your index.php for all files it cannot normally find in your site. In there you can then for example:

$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();
}

This is how big sites and CMS-systems do it, because it allows far more flexibility in parsing URLs, config and database dependent URLs etc. For sporadic usage the hardcoded rewrite rules in .htaccess will do fine though.

*****Copy this content from URL rewriting with PHP**

查看更多
Root(大扎)
3楼-- · 2020-01-29 01:39

Put .htaccess file inside jcheck folder and write:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-D
RewriteRule ^1/?$ index.php?id=1
查看更多
欢心
4楼-- · 2020-01-29 01:46
RewriteEngine on
RewriteRule ^/jcheck/([0-9]+)$ /jcheck/index.php?id=1

and see also here it will usefull for you

查看更多
何必那么认真
5楼-- · 2020-01-29 01:51

Try this one:

RewriteRule ^jcheck/([0-9]+)$ jcheck/index.php?id=$1
查看更多
Viruses.
6楼-- · 2020-01-29 01:55

In the htaccess file in your jcheck directory, use these rules:

RewriteEngine On
RewriteBase /jcheck/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/?$ index.php?id=$1 [L,QSA]
查看更多
登录 后发表回答