尝试在/path/index.php?id之后获取ID - 但不能正常工作

时间:2014-01-01 17:12:17

标签: php regex apache .htaccess mod-rewrite

我正在尝试获取index.php的ID,我希望它看起来像这样:

www.mysite.com/path/<--ID goes here-->

我试过把它放在我的.htaccess文件中,但它不起作用!

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d # not a dir
RewriteCond %{REQUEST_FILENAME} !-f # not a file
RewriteRule ^(.*)$ index.php?uri=$1 [L]

当然,我使用$ID = $_GET['id'];来获取ID。

如果vistor输入以下内容,我也希望它可以工作..

www.mysite.com/<--ID goes here-->

我知道一个适用于上述代码的代码,但它不适用于其他路径。

任何帮助将不胜感激!感谢

2 个答案:

答案 0 :(得分:2)

您应该使用$ID = $_GET['uri'],因为这是您在RewriteRule中添加的内容

答案 1 :(得分:2)

您可以在DOCUMENT_ROOT/.htaccess文件中尝试此规则:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(path)/([^/]+)/?$ /$1/index.php?id=$2 [L,QSA,NC]

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