2015-12-11 62 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/; 
?>