.htaccess变量和模块化环境

时间:2015-12-11 23:18:47

标签: php apache .htaccess

我继承了一个没有开发环境的非常卡住的网站。在LAMP堆栈中,htaccess文件是我最薄弱的一点,看来最后一个开发人员使用htaccess文件完成了很多工作。

我尝试过多次尝试修改它,但我只是在尝试创建开发环境时才成功破解它。

我想要做的就是参考我的网站

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

并将其更改为

[howeverVariablesWorkInHTACCESS]/foo/bar

由某个变量构建。我已经看到htaccess可以使用变量的引用,但我还没有看到任何我真正理解的内容。

理想情况下,我不必手动输入该变量值,但不知何故将其从文件的位置拉出来,但如果这不是一个选项,那么只改变服务器之间的一行比数百人少得多。

所以,TL; DR 如何在htaccess文件中创建变量并根据文件位置为它们提供值?

和奖金请求...建议的方法真正得到一个体面的htaccess文件的掌握?到目前为止,我还没有看到对于htaccess或明确写好的指南的小提琴。

1 个答案:

答案 0 :(得分: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/

它将取代并采取" / hello / bobo /"现在你可以在.htacces文件中使用它。另外如果你想重定向到另一个页面并过滤变量值,你应该修改$ 1,因为这里有所有数据。

编辑:在该示例中,我在我的域名后获取网址,然后重定向到get.php 你也可以用" /"分割方法来划分网址。让我们看一下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/;
?>