我知道这个问题已经问过很多次了,但是我找不到我想要的答案。
基本的网址重写位,但第一次这样做。
示例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'];

但是对于未定义的索引,我得到了一些错误。
我想是因为我正在重写url,get变量仍然有效吗?
谢谢。克雷格。
按要求编辑,full.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]

最佳答案

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

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

关于php - 使用带有干净URL的$ _GET,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25109857/

10-10 04:10