使用php的SEO友好的URL

时间:2013-09-16 07:25:09

标签: php html .htaccess seo

我正在尝试使用php制作SEO友好的网站...

在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

我怎样才能让它发挥作用?

5 个答案:

答案 0 :(得分:4)

您基本上可以通过以下两种方式执行此操作:

带有mod_rewrite的.htaccess路线

在根文件夹中添加名为.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 rewriting with PHP **

复制此内容

答案 1 :(得分:2)

在jcheck目录的htaccess文件中,使用以下规则:

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

答案 2 :(得分:1)

试试这个:

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

答案 3 :(得分:0)

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

另见 here ,这对您有用

答案 4 :(得分:0)

将.htaccess文件放在jcheck文件夹中并写入:

RewriteEngine on

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