使用带有干净URL的$ _GET

时间:2014-08-03 22:50:49

标签: php .htaccess url mod-rewrite seo

我知道很多时候都会问这个问题,但我找不到我想要的答案。

URL重写的基本位,但第一次执行。

示例网址:

domain.com/viewbuild.php?id=25

所需:

domain.com/viewbuild/25

尝试了htaccess代码:

RewriteRule ^viewbuild/([a-zA-Z0-9]+)/$ viewbuild.php?id=$1 [L,QSA]

但是,我正在尝试使用:

$id = $_GET['id'];

但我对未定义索引的错误。

我想是因为我正在重写GET变量仍然可以使用的URL吗?

感谢。克雷格。

按要求编辑,完整.htaccess。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^viewbuild/([a-zA-Z0-9]+)/?$ /viewbuild.php?id=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L,QSA]

1 个答案:

答案 0 :(得分:1)

正则表达式^viewbuild/([a-zA-Z0-9]+)/$需要一个尾部斜杠,因此它只匹配/viewbuild/25/。试试这个:

RewriteRule ^viewbuild/([a-zA-Z0-9]+)/?$ /viewbuild.php?id=$1 [L,QSA]
相关问题