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