我正在使用通過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