我正在使用通过htaccess进行URL重写。以下是内容:修改现有的.htaccess(使用PHP)
Options +FollowSymLinks
RewriteEngine on
#RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z_-]+)\.php$ index.php?slug=$1 [L]
我现在的导航菜单结构:
<a href="home.php">Home</a>
<a href="about-us.php">About Us</a>
<a href="contact-us.php">Contact Us</a>
我称之为数据库列蛞蝓和使用$ _GET [“塞”],我能够查询数据库并显示结果。到目前为止,它的工作正常。
我所试图做的事:
我试图让用户更改其内容的文字语言。我有2个标志图像,它们是超链接的(实际上有更多的语言)。
例子:
<a href="<?php echo '?lang=en'; ?>">English</a>
<a href="<?php echo '?lang=pt'; ?>">Portugese</a>
我已经在.htaccess中添加另一条线路:
RewriteRule ^([0-9a-zA-Z_-]+)\.php?lang=[a-z]$ index.php?slug=$1&lang=$2 [L,QSA]
因此,可以说,我目前的公司简介页面。 URL可能为已读: http://localhost/mysite/about-us.php
现在可以说,我点击“PT”改变语言,页面导航到: http://localhost/mysite/about-us.php?lang=pt
如果我回声$ _GET [“郎”现在,它给我PHP的通知:
Notice: Undefined index: lang
因为$ _GET [“郎”]没有定义,我无法抓住它的价值,因此,我无法查询数据库。当我提出改变语言的请求时,我也想确保我能够像我一样到达同一页面。因此,如果我在联系我们页面上,并且我点击了标志将语言更改为PT,我希望页面可以重新加载,在/不在URL中显示?lang = pt,我希望能够使用$获取此值_GET ['lang'],以便我可以查询数据库。这个怎么做?
PERFECTTTTTT!非常感谢您将头部钉在头上并作出解释。这有很大帮助。 – Devner 2012-03-21 22:23:14