我知道很多时候都会问这个问题,但我找不到我想要的答案。
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]
答案 0 :(得分:1)
正则表达式^viewbuild/([a-zA-Z0-9]+)/$
需要一个尾部斜杠,因此它只匹配/viewbuild/25/
。试试这个:
RewriteRule ^viewbuild/([a-zA-Z0-9]+)/?$ /viewbuild.php?id=$1 [L,QSA]