2015-12-11 59 views
0

我繼承了一個非常卡住的網站,沒有開發環境。在LAMP堆棧中,htaccess文件一直是我最薄弱的一點,而且看起來最後一位開發人員使用htaccess文件做了很多工作。.htaccess變量和環境的模塊化

我試過嘗試修改它幾次,但我只試圖使開發環境成功地打破它。

我想要做的就是把我的網站

http://www.example.com/foo/bar 

的每個參考,並更改爲

[howeverVariablesWorkInHTACCESS]/foo/bar 

正在被一些變量建立。我見過引用htaccess可以使用變量,但我沒有看到任何我真正理解。

理想情況下,我不必手動輸入該變量值,但以某種方式將其從文件的位置拉出來,但如果這不是一個選項,那麼在服務器之間只改變一條線就會比數百個頭疼得多。

因此,TL; DR 如何在htaccess文件中創建變量並根據文件位置給它們賦值?

和獎金請求......建議的方法,以真正得到一個體面的htaccess文件的掌握?我還沒有看到htaccess等同於小提琴或明確的書面指南。

回答

1

,你可以用這種方法全自動獲取變量值

RewriteEngine On 

    RewriteBase/
    RewriteEngine On Options All -Indexes RewriteBase /directoryname/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 

    ############### SEO  ########################## 

#http://www.example.com/hello/booboo/ it takes the url after .com/ 
    RewriteRule ^(.*)$ getme.php?url=$1 [QSA,L] 

例如,如果我進入http://www.example.com/hello/bobo/

它要取代,並採取「/你好/ BOBO /」的一部分,現在你可以使用這在.htacces文件中同樣,如果你想重定向到另一個頁面並過濾變量值,你應該修改$ 1,因爲這裏的所有數據。

編輯:在例如我得到URL我的域名後,我重定向到get.php 你也可以使用拆分方法,通過劃分URL「/」讓我們來看看get.php頁面瞭解這種方法

getme.php:

<?php 

//we redirect to get in url=$1 so our get method name is url 
$parca = explode("/", $_GET["url"]); //and we divided by slash the url. 

echo $parca[0];//this is first part "/hello/ 
echo $parca[1];// and this is second part "/booboo/; 
?>