我继承了一个没有开发环境的非常卡住的网站。在LAMP堆栈中,htaccess文件是我最薄弱的一点,看来最后一个开发人员使用htaccess文件完成了很多工作。
我尝试过多次尝试修改它,但我只是在尝试创建开发环境时才成功破解它。
我想要做的就是参考我的网站
http://www.example.com/foo/bar
并将其更改为
[howeverVariablesWorkInHTACCESS]/foo/bar
由某个变量构建。我已经看到htaccess可以使用变量的引用,但我还没有看到任何我真正理解的内容。
理想情况下,我不必手动输入该变量值,但不知何故将其从文件的位置拉出来,但如果这不是一个选项,那么只改变服务器之间的一行比数百人少得多。
所以,TL; DR 如何在htaccess文件中创建变量并根据文件位置为它们提供值?
和奖金请求...建议的方法真正得到一个体面的htaccess文件的掌握?到目前为止,我还没有看到对于htaccess或明确写好的指南的小提琴。
答案 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/;
?>